Из сегодняшней “солянки” вопросов по платформе и производственному учету в 1С:ERP вы узнаете, можно ли создавать объект “Сообщение пользователю” в цикле и для чего используется флаг использования производственных участков в настройках производственного подразделения. Обучайтесь вдумчиво и результат не заставит себя ждать!
Вопрос № 1. Можно ли создавать объект “Сообщение пользователю” в цикле?
Можно ли этот код
Пока Выборка.Следующий() Цикл Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Недостаточно товара " + Выборка.НоменклатураПредставление + ", не хватает: " + (-Выборка.КоличествоОстаток); Сообщение.Сообщить(); КонецЦикла;
Заменить на
Сообщение = Новый СообщениеПользователю; Пока Выборка.Следующий() Цикл Сообщение.Текст = "Недостаточно товара " + Выборка.НоменклатураПредставление + ", не хватает: " + (-Выборка.КоличествоОстаток); Сообщение.Сообщить(); КонецЦикла;
Ответ
Если на объект нет ссылок, он автоматически уничтожается системой. Поэтому при очередном присваивании переменной Сообщение нового значения:
Сообщение = Новый СообщениеПользователю;
ранее созданный объект “СообщениеПользователю” будет уничтожен (ссылка на этот объект – это старое значение переменной).
Механизмом уничтожения неиспользуемых объектов, очистки памяти полностью управляет система (считаем, что она с этим справляется успешно), программист управлять им не может. Единственный способ как-то повлиять – это “подсказать” системе, что объект больше не используется и его можно удалить: это можно сделать, например, присвоив переменной со ссылкой на объект значение Неопределено.
На экзамене можете использовать любой из вариантов, какой-то принципиальной разницы между этими вариантами нет.
Первый вариант нагляднее, так как все параметры объекта собраны воедино, они инициализируются каждый раз заново – меньше риск допустить ошибку. Поэтому считаем его предпочтительным. Кстати, и в типовых конфигурациях поступают так же: для вывода сообщений каждый раз создают новый объект “СообщениеПользователю”.
Второй вариант потребует чуть меньше операций для системы, но затраты на них столь малы, что какого-то ощутимого эффекта в плане улучшения производительности в этом варианте получить не удастся. Да и сам объект весьма мал, чтобы существенно повлиять на загрузку памяти. А вот вероятность ошибок в этом варианте повышается, и существенно. Следует учесть, что тело цикла может быть достаточно большим, что в нем могут использоваться несколько блоков вывода сообщений, причем эти сообщения могут не только выводиться в виде текста, но и связываться с элементами формы. Поэтому в этом варианте, чтобы избежать ошибок, нужно будет каждый раз заново устанавливать значения всех используемых параметров объекта “СообщениеПользователю”, ведь при выводе сообщений значения его параметров не очищаются.
Подготовка к аттестации 1С:Специалист по платформе 1С:Предприятие 8.3.
Вопрос № 2. Для чего используется флаг Использовать производственные участки в настройках производственного подразделения?
Ответ
Производственные участки используются для уточнения организационной структуры подразделения. Перечень участков определяется для каждого конкретного подразделения. Какой-то специальной информации об участке не вводится, только наименование.
Если в настройках подразделения установлен флаг использования производственных участков, то при описании рабочих центров фиксируется, к какому участку они относятся.
В конечном итоге, эта информация используется для формирования сменных заданий. Сменные задания формируются на конкретный участок. Что, конечно, удобно. И чем больше подразделение, чем больше в нем рабочих центров, тем востребованнее становится эта возможность.
Подготовка к Аттестации 1С:Специалист-Консультант по производству и ремонтам.