Содержание:
1. 1С:УПП. Партионный учет. Оптимизация
2. Партионный учет в 1С:Управление производственным предприятием 1.3: решение проблем
Всем, кто работает в конфигурации 1С:Управление производственным предприятием 1.3, известно, что основная нагрузка на систему происходит в момент получения дерева партий номенклатуры для целей определения ее себестоимости. Данная статья показывает один из способов оптимизации данного процесса.
1. 1С:УПП. Партионный учет. Оптимизация
Рассмотрим, как производится в УПП партионный учет. За основу возьмем типовую конфигурацию с настроенным учетом партий по складам. То есть учет будет происходить по всем основным измерениям регистров партий:
· Номенклатура
· Характеристика номенклатуры
· Склад
· Организация
Также подразумевается использование регистра сведений «Списанные товары».
Типовой функционал получения остатков работает следующим образом:
1. Создаются записи в регистре сведений «Списанные товары», содержащие значения как основных измерений учета партий, так и вспомогательные данные для иных видов учета (сами виды учета, счета учета, аналитики и пр.)
2. По видам учета (управленческий, бухгалтерский, налоговый) производится запрос к соответствующим регистрам накопления. Причем фильтры в виртуальной таблице накладываются так:
· Организация по параметру
· Номенклатура + Характеристика номенклатуры на вхождение в регистр «Списанные товары» с отбором по текущему регистратору
· Склад на вхождение в регистр «Списанные товары» с отбором по текущему регистратору
3. Дерево партий передается в процедуру, которая построчным обходом полученной таблицы производит списание.
2. Партионный учет в 1С:Управление производственным предприятием 1.3: решение проблем
Сразу видим две основные проблемы при организации партионного учета в 1С во втором пункте:
1. Порядок полей в отборе никоим образом не позволит использовать какой-либо из существующих индексов для таблиц партий товаров.
2. Обращение к таблице регистра сведений «Списанные товары» происходит два раза.
Со второй проблемой проще – достаточно начать запрос с создания временной таблицы с отбором списанных товаров по регистратору и в отбор виртуальной таблицы передавать уже отобранные данные. Такое решение уже неоднократно публиковалось на просторах интернета и по данным этих публикаций происходит ускорение работы запроса в разы.
А вот с первой проблемой при организации партионного учета в 1С Управление производственным предприятием 1.3 несколько сложнее. Вмешательство в СУБД, где хранятся данные конфигурации будет нарушением лицензионного соглашения 1С. Изменения порядка полей в регистре может привести к некоторому улучшению ситуации. Но есть более красивое решение. И это решение подсказано самой фирмой «1С» прямо в этой же типовой конфигурации 1С:УПП 1.3.
Вместе с появлением нового метода учета себестоимости РАУЗ (расширенная аналитика учета затрат) в конфигурации появились очень интересные регистры типа «Аналитика учета чего-то», где набором измерений являются значения аналитик, а ресурсом – ссылка на справочник «Ключ учета чего-то». Эти регистры позволяют по набору аналитик получить единственное значение ключа. А так как регистр сведений имеет основной индекс, состоящий из последовательности измерений, то правильно построенный запрос к нему работает очень быстро.
То есть будет вполне логично создать такой ключ с регистром аналитик и для партионного учета товаров.
Для общего случая можно создать регистр следующего состава (порядок подобран по принципу индексной селективности):
· Измерения
- Номенклатура
- Характеристика Номенклатуры
- Склад
- Организация
· Ресурсы
- Ссылка
Значением ресурса «Ссылка» будет значение справочника «Ключи аналитики партий».
Добавим значение ключа в регистры накопления по партиям и в регистр сведений «Списанные товары». Включив подписки на события перед записью указанных регистров, заполняем эти значения.
Осталось только включить небольшую «обертку» для запроса получения дерева партий, которая включит получение выборки значений ключей из регистра сведений «Списанные товары» и включит отбор в регистрах накопления по одному единственному индексированному полю.
Это решение позволит получить ускорение выборки данных по партиям товаров на порядки!
Наша компания имеет готовые наработки для реализации такого ускорения партионного учета товаров. Вы можете обратиться к нашему онлайн-консультанту.
Специалист компании ООО «Кодерлайн»
Андрей Вахрин.