[После]Новогодние задачи
Разработка - Практика программирования
Я хочу предложить несколько интересных на мой взгляд задач. Скорее всего, не все они имеют практическое применение, но, я надеюсь, позволят взглянуть на казалось бы хорошо знакомые вещи с неожиданной стороны.
1)
Начнем с классики:
Как поменять местами значения двух переменных, не используя третью? В языке 1С существует как минимум три способа для числовых переменных и один - для строковых. Каждый способ имеет свои достоинства, недостатки и область применения. (Конечно же, говоря о количестве переменных, мы имеем в виду прикладной код. Какие переменные используются при этом в платформе нам неведомо). Найдите эти способы. А может быть их число гораздо больше?
2)
Имеется две таблицы, в первой - M записей, во второй - N записей. Какое максимальное и минимальное число записей может содержать результат а) левого соединения, б) внутреннего соединения и в) полного соединения таблиц? (дополнительные условия ГДЕ (WHERE) не накладываются).
3)
Существует рекомендация для оптимизации запросов: отборы при использовании виртуальных таблиц лучше задавать в параметрах виртуальной таблицы, а не в секции ГДЕ. Но всегда ли результаты будут идентичны? Другими словами: возможна ли ситуация, когда переместив условие из секции ГДЕ в параметры виртуальной таблицы, мы получим другой результат запроса?
4)
Есть справочник Контрагенты с табличной частью Скидки. Для каждого контрагента может быть несколько видов скидок, заданных в процентах.
При вычислении итоговой цены для контрагента все скидки применяются последовательно, т.е. например, если есть две скидки по 50%, то результирующая цена сторублевого товара будет: 100 минус 50% от 100 рублей и минус 50% от результата, итого - 25 руб. Таким образом итоговая скидка составила 75%.
Необходимо разработать отчет, который рассчитывает итоговые скидки контрагентов
5)
Программист Вася (не тот, который кот (c), а тот, который не кот) получил задачу:
Имеется две таблицы значений с колонкой "Наименование". Необходимо найти сколько строк (наименований) из первой таблицы присутствуют во второй. Вася решает сделать это за один проход по предварительно отсортированным таблицам и пишет вот такой код:
ТЗ1.Сортировать("Наименование");
ТЗ2.Сортировать("Наименование");
КолВоСовпадений = 0;
Индекс1 = 0;
Индекс2 = 0;
Пока Индекс1 < ТЗ1.Количество() И Индекс2 < ТЗ2.Количество() Цикл
Если ТЗ1[Индекс1].Наименование = ТЗ2[Индекс2].Наименование Тогда
КолВоСовпадений = КолВоСовпадений + 1;
Индекс1 = Индекс1 + 1;
ИначеЕсли ТЗ1[Индекс1].Наименование < ТЗ2[Индекс2].Наименование Тогда
Индекс1 = Индекс1 + 1;
ИначеЕсли ТЗ1[Индекс1].Наименование > ТЗ2[Индекс2].Наименование Тогда
Индекс2 = Индекс2 + 1;
КонецЕсли;
КонецЦикла;
Сообщить("Количество совпадений: " + КолВоСовпадений);
К сожалению, этот код ошибочен. Где ошибка? Как исправить?
6)
Дано не очень большое положительное целое число. Необходимо разделить его на N целых частей пропорционально (точнее примерно пропорционально) N весам.
Примеры:
Число: 100
частей: 2
веса: 1, 3.
Результат: 25, 75
Число: 1000
частей: 3
веса: 1, 2, 3.
Результат: 167, 333, 500
Обязательное условие: операции умножения и деления использовать нельзя!
На этом пока все. Поздравляю всех с Новым годом!
PS: Настоятельная просьба: пожалуйста, не пишите ответы и решения в комментариях, не лишайте сообщество удовольствия самостоятельного поиска решения! Желающие могут прислать свои варианты ответов в личку, постараюсь ответить всем.
UPD 16.01.2020:
Специальные предложения
См. также
Базовый курс по управлению ИТ-проектами. Курс проходит с 26 февраля по 22 апреля 2020 года. Промо
Отличительная черта курса - органичное сочетание трех вещей: 1.Теория проектного управления (PMI®+Agile Alliance+Российские ГОСТ+Методологии от 1С); 2. Опыт внедрения продуктов 1С (опыт франчайзи и успешных компаний + тренды Infostart Event и Agile Days); 3. Разбор реальных проблем и рекомендации экспертов по проектам слушателей. Мы будем фиксироваться на тех инструментах, которые реально оказываются полезными в практике руководителей проектов внедрения. Ведущая курса - Мария Темчина.
от 11000 рублей
Перенос документов, остатков и справочников КА 1.1 => КА 2 / УТ 11. Обновлено до КА 2.4.12.х и УТ 11.4.11.х! Промо
Более 130 компаний выполнили переход на КА 2 или УТ 11 с помощью нашей разработки! Позволяет перенести не только остатки и справочники (как типовая обработка), но и документы за нужный период времени. Предоставляем техподдержку, оперативно исправляем замечания, выпускаем обновления при выходе новых релизов программ 1С. Вы можете проверить разработку до покупки: сделаем бесплатный тестовый перенос из вашей базы КА 1.1 и предоставим доступ к базе-результату через веб-клиент!
29700 руб.
Перенос данных КА 1.1 / УПП 1.3 => БП 3.0 (перенос остатков, документов и справочников из "1С:Комплексная автоматизация 1.1" / УПП 1.3 в "1С:Бухгалтерия 3.0"). Обновлен до версий КА 1.1.115.х, УПП 1.3.130.х! Промо
Разработка позволяет перенести остатки по всем счетам бух.учета в программу "1С:Бухгалтерия предприятия 8", ред. 3.0 на выбранную дату начала ведения учета. Также переносятся документы за период и вся необходимая справочная информация. Правила оперативно обновляю при выходе новых релизов. Рассылка обновлений правил бесплатно в течение 12 месяцев. Есть видеодемонстрация проведения переноса данных. Конфигурации при использовании обмена остаются полностью типовыми. Перенос данных возможен в Бухгалтерию 3.0 версии ПРОФ, КОРП или базовую.
24700 руб.
Функции СКД: ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив
08.08.2019 26926 ids79 34
Готовые переносы данных из различных конфигураций 1C Промо
Рекомендуем готовые решения для переноса данных из различных конфигураций 1C. C техподдержкой от разработчиков и гарантией от Инфостарт.
СКД - наборы данных и связи между ними, создание собственной иерархии, вложенные отчеты
26.07.2019 22813 ids79 8
Базовый курс по разработке мобильных 1C-приложений для Android-устройств. Третий поток. Онлайн-интенсив с 11 февраля по 05 марта 2020 г. Промо
Данный онлайн-курс предусматривает изучение базовых принципов создания приложений для операционной системы Android, работающих на мобильной платформе “1С:Предприятие”. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие” при разработке прикладных решений для “обычных” компьютеров, но пока ещё не занимался разработкой 1С-приложений, предназначенных для работы на мобильных устройствах.
7500 рублей
Новый раздел на Инфостарте - Electronic Software Distribution Промо
Инфостарт напоминает: на нашем сайте можно купить не только ПО, связанное с 1С. В нашем арсенале – ESD-лицензии на ПО от ведущих вендоров: Microsoft, Kaspersky, ESET, Dr.Web, Аскон и другие.
- Низкие цены, без скрытых платежей и наценок
- Оперативная отгрузка
- Возможность оплаты с личного счета (кешбек, обмен стартмани на рубли и т.п.)
- Покупки идут в накопления для получения скидочных карт лояльности Silver (5%) и Gold (10%)
СКД - использование расширений языка запросов, секция ХАРАКТЕРИСТИКИ
17.07.2019 17316 ids79 27
Подборка программ для взаимодействия с ЕГАИС Промо
ЕГАИС (Единая государственная автоматизированная информационная система) - автоматизированная система, предназначенная для государственного контроля за объёмом производства и оборота этилового спирта, алкогольной и спиртосодержащей продукции. Инфостарт рекомендует подборку проверенных решений для взаимодействия с системой.
PgConf.Russia 2020. 3-5 февраля 2020 г. Москва. Промо
PGConf.Russia – международная техническая конференция по открытой СУБД PostgreSQL, ежегодно собирающая более 700 разработчиков, администраторов баз данных и IT-менеджеров для обмена опытом и профессионального общения. Для участников сообщества infostart.ru скидка 5% на участие в конференции.
от 12350 рублей
Многопоточное ускорение однопользовательских нагрузок в 1С + Microsoft SQL Server 2017
11.06.2019 15886 dmurk 144
Управление ИТ-проектами. Модуль 2: продвинутый онлайн-курс по классическим методам управления проектами. Вебинары проходят с 12 марта по 11 июня 2020 года. Промо
Продвинутый онлайн-курс по классическому управлению ИТ-проектами позволит слушателям освоить инструменты из PMBoK® и 1С:Технологии корпоративного внедрения и научиться их применять для проектов любого масштаба. Курс включает в себя 12 вебинаров и 12 видеолекции, разбор кейсов и рекомендации экспертов по проектам слушателей. Ведущая курса - Мария Темчина.
от 13000 рублей
Перенос данных УПП 1.3 => ERP 2 (ЕРП) / УТ 11 / КА 2.х (обработка переноса документов, остатков и справочников из "1С:Управление производственным предприятием, ред. 1.3" в ERP / УТ 11 / КА 2). Обновлен до УПП 1.3.130.х, КА 2.4.11.х и ERP 2.4.11.х! Промо
Обработка позволяет переносить из УПП 1.3 в ERP 2 документы за выбранный период и остатки. Типовая обработка от фирмы 1С документы не переносит. Также исправлены ошибки типовой обработки. При выходе новых релизов обновление высылается бесплатно в течение года. Разработка будет полезна фирмам-франчайзи, которые периодически выполняют такой перенос данных для заказчиков. Вы можете один раз приобрести обработку переноса, и потом бесплатно получать обновления при выходе новых релизов конфигураций 1С.
29700 руб.
Онлайн-курс «Практические аспекты внедрения регламентированного учета и расчета себестоимости в 1С:ERP на крупных промышленных предприятиях» с 17 февраля по 13 марта 2020 года. Промо
Курс рассчитан для подготовки экспертов по регламентированному учету и учету затрат для внедрения на крупных промышленных предприятиях с «исторически сложившимся» учетом
9000 рублей
Git-репозитории для 1С-кода (опыт использования при небольших проектах)
28.03.2019 17479 ellavs 83
Программы для исполнения 488-ФЗ: Маркировка товаров Промо
1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.
Возможности типовых шаблонов ограничения доступа на уровне записей (RLS)
03.02.2019 22580 ids79 9
Разработка и сценарное тестирование с Vanessa-ADD. Концепция, теория и сквозной пример создания сценария
09.01.2019 32943 Vladimir Litvinenko 69