При настройке регламентированного учета, бюджетирования или разработке интеграций в 1С:ERP Управление предприятием часто возникает необходимость получить исчерпывающий перечень всех доступных хозяйственных операций. Разберем, как устроена архитектура хранения операций в системе, меняется ли их состав в зависимости от включенных функциональных опций и как быстро выгрузить полный список.
Для корректной работы с операциями важно понимать разделение между самими видами операций и их правилами отражения в учете:
Перечисление.ХозяйственныеОперации — базовый объект метаданных, в котором зашит полный и закрытый перечень всех возможных хозяйственных операций конфигурации. Этот список жестко определен разработчиками в конфигураторе и не изменяется пользователем в режиме «1С:Предприятие».Справочник.НастройкиХозяйственныхОпераций — объект, предназначенный для хранения аналитических связей: правил формирования проводок, сопоставления со счетами учета, группами финансового учета (ГФУ), статьями расходов/активов и источниками данных для бюджетирования. У этого справочника есть ключевой реквизит ХозяйственнаяОперация с типом ПеречислениеСсылка.ХозяйственныеОперации.Таким образом, эталонный и неизменяемый список операций находится именно в перечислении, а справочники и планы видов характеристик выступают механизмами настройки их поведения.
Проанализируем влияние пользовательских настроек на состав операций:
Состав метаданных в информационной базе не зависит от настроек. Перечисление всегда содержит полный список всех операций, предусмотренных текущей версией конфигурации.
Однако видимость и доступность операций в документах напрямую зависят от функциональных опций. Например, если в базе отключены разделы «Производство», «Комиссионные закупки», «Импорт» или «Давальческая схема», связанные с ними хозяйственные операции программно скрываются из форм документов и рабочих мест пользователей. Это предотвращает выбор некорректных операций, но не удаляет их из метаданных конфигурации.
Разберем по шагам три способа извлечения полного списка операций в зависимости от доступных инструментов.
Способ 1. Использование «Универсального отчета» (в режиме «1С:Предприятие» без программирования)
Перечисление.Хозяйственные операции.Способ 2. Выгрузка через консоль запросов
Если доступна консоль запросов или требуется получить данные для программной обработки, выполним запрос к таблице перечисления:
ВЫБРАТЬ
ХозяйственныеОперации.Ссылка КАК Операция,
ХозяйственныеОперации.Порядок КАК Порядок
ИЗ
Перечисление.ХозяйственныеОперации КАК ХозяйственныеОперации
УПОРЯДОЧИТЬ ПО
Порядок
Способ 3. Программный обход метаданных на встроенном языке 1С
Для формирования текстового списка или выгрузки в файл можно использовать обход коллекции метаданных:
СписокОпераций = Новый Массив;
Для Каждого ЗначениеПеречисления Из Метаданные.Перечисления.ХозяйственныеОперации.ЗначенияПеречисления Цикл
СтруктураОперации = Новый Структура;
СтруктураОперации.Вставить("Имя", ЗначениеПеречисления.Имя);
СтруктураОперации.Вставить("Синоним", ЗначениеПеречисления.Синоним);
СписокОпераций.Добавить(СтруктураОперации);
КонецЦикла;
Добавить новую хозяйственную операцию исключительно пользовательскими средствами невозможно. Если добавить новый элемент в Перечисление.ХозяйственныеОперации через конфигуратор или расширение, система не сможет автоматически обрабатывать движения по нему.
Для полноценной поддержки новой операции потребуется доработка логики проведения документов, процедур отражения в регламентированном учете, механизмов закрытия месяца и распределения затрат.