Где в УТ 11.4.13.123 размещается алгоритм формирования ключа аналитики учёта номенклатуры?
Приветствую коллеги!
Есть необходимость проверить
- корректность ключей аналитики учёта номенклатуры,
- финансовые и складские остатки товаров по ключам,
- соответствие аналитик документов, применяющих ключи, и аналитики самих ключей...
ну и прочее. Думаю, многие сталкивались с проблемой мусора в ключах после переноса базы со старым релизом УТ в более новую без применения штатных обработок в силу различных причин.
Поэтому есть следующие вопросы:
1. Где посмотреть алгоритм поиска существующего и формирования нового ключа (ну и аналитик в регистре значений)?
2. Предполагаю, что механизм поиска / создания ключей стандартизирован для различных документов конфигурации, где-то должен быть «сборщик» аналитик из табличных частей или шапок документов для дальнейшего поиска / создания. Где этот алгоритм находится?
Спасибо.
Есть необходимость проверить
- корректность ключей аналитики учёта номенклатуры,
- финансовые и складские остатки товаров по ключам,
- соответствие аналитик документов, применяющих ключи, и аналитики самих ключей...
ну и прочее. Думаю, многие сталкивались с проблемой мусора в ключах после переноса базы со старым релизом УТ в более новую без применения штатных обработок в силу различных причин.
Поэтому есть следующие вопросы:
1. Где посмотреть алгоритм поиска существующего и формирования нового ключа (ну и аналитик в регистре значений)?
2. Предполагаю, что механизм поиска / создания ключей стандартизирован для различных документов конфигурации, где-то должен быть «сборщик» аналитик из табличных частей или шапок документов для дальнейшего поиска / создания. Где этот алгоритм находится?
Спасибо.
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Конкретно в моем случае наблюдалась проблема отсутствия остатков в отчёте «Ведомость по товарам организаций» (ВедомостьПоТоварамОрганизаций). Движения в РН ТоварыОрганизацийесть, а в отчёте движения за период не появлялись.
Причина оказалась в частичном отсутствии в справочнике КлючиАналитикиУчетаНоменклатуры данных в реквизитах:
- ТипМестаХранения
- СкладскаяТерритория
- Подразделение
- Партнер
- Организация
...при заполненном реквизите МестоХранения. А отёт ВедомостьПоТоварамОрганизаций (да и другие отчёты) применяют эти данные.
Для решения в подсистеме Инструментарий разработчика (версия 5.81.1) в консоли запросов написал запрос,
выявляющий ломаные ключи и во вкладке «Обработка строки результата» написал простенький алгоритм для заполнения этих свойств.
Прикладываю файл.
(!) Будьте осторожны! Защиты от дурака - не делал, тестового режима как такового нет.
Запрос можно спокойно запускать, но алгоритм кнопкой «Выполнить» - только при полном понимании что он выполнит с каждой строкой из результата запроса.
Причина оказалась в частичном отсутствии в справочнике КлючиАналитикиУчетаНоменклатуры данных в реквизитах:
- ТипМестаХранения
- СкладскаяТерритория
- Подразделение
- Партнер
- Организация
...при заполненном реквизите МестоХранения. А отёт ВедомостьПоТоварамОрганизаций (да и другие отчёты) применяют эти данные.
Для решения в подсистеме Инструментарий разработчика (версия 5.81.1) в консоли запросов написал запрос,
Код |
---|
ВЫБРАТЬ
КлючиАналитикиУчетаНоменклатуры.Ссылка КАК Ссылка,
КлючиАналитикиУчетаНоменклатуры.МестоХранения КАК МестоХранения,
ТИПЗНАЧЕНИЯ(КлючиАналитикиУчетаНоменклатуры.МестоХранения) КАК ТипЗначенияМестаХранения,
КлючиАналитикиУчетаНоменклатуры.ТипМестаХранения КАК ТипМестаХранения,
ВЫБОР
КОГДА ТИПЗНАЧЕНИЯ(КлючиАналитикиУчетаНоменклатуры.МестоХранения) = ТИП(Справочник.Склады)
ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыМестХранения.Склад)
КОГДА ТИПЗНАЧЕНИЯ(КлючиАналитикиУчетаНоменклатуры.МестоХранения) = ТИП(Справочник.Организации)
ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыМестХранения.Организация)
КОГДА ТИПЗНАЧЕНИЯ(КлючиАналитикиУчетаНоменклатуры.МестоХранения) = ТИП(Справочник.Партнеры)
ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыМестХранения.Партнер)
КОГДА ТИПЗНАЧЕНИЯ(КлючиАналитикиУчетаНоменклатуры.МестоХранения) = ТИП(Справочник.СтруктураПредприятия)
ТОГДА ЗНАЧЕНИЕ(Перечисление.ТипыМестХранения.Подразделение)
ИНАЧЕ NULL
КОНЕЦ КАК УстановитьТип,
КлючиАналитикиУчетаНоменклатуры.СкладскаяТерритория КАК СкладскаяТерритория,
КлючиАналитикиУчетаНоменклатуры.Подразделение КАК Подразделение,
КлючиАналитикиУчетаНоменклатуры.Партнер КАК Партнер,
КлючиАналитикиУчетаНоменклатуры.Контрагент КАК Контрагент,
КлючиАналитикиУчетаНоменклатуры.Договор КАК Договор,
КлючиАналитикиУчетаНоменклатуры.Организация КАК Организация
ПОМЕСТИТЬ ВТ_СверкаКлючей
ИЗ
Справочник.КлючиАналитикиУчетаНоменклатуры КАК КлючиАналитикиУчетаНоменклатуры
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ЛОЖЬ КАК Отработан,
ВТ_СверкаКлючей.Ссылка КАК Ссылка,
ВТ_СверкаКлючей.МестоХранения КАК МестоХранения,
ВТ_СверкаКлючей.ТипЗначенияМестаХранения КАК ТипЗначенияМестаХранения,
ВТ_СверкаКлючей.ТипМестаХранения КАК ТипМестаХранения,
ВТ_СверкаКлючей.УстановитьТип КАК УстановитьТип,
ВТ_СверкаКлючей.СкладскаяТерритория КАК СкладскаяТерритория,
ВТ_СверкаКлючей.Подразделение КАК Подразделение,
ВТ_СверкаКлючей.Партнер КАК Партнер,
ВТ_СверкаКлючей.Контрагент КАК Контрагент,
ВТ_СверкаКлючей.Договор КАК Договор,
ВТ_СверкаКлючей.Организация КАК Организация
ИЗ
ВТ_СверкаКлючей КАК ВТ_СверкаКлючей
ГДЕ
ВТ_СверкаКлючей.ТипМестаХранения <> ВТ_СверкаКлючей.УстановитьТип
Показать полностью |
выявляющий ломаные ключи и во вкладке «Обработка строки результата» написал простенький алгоритм для заполнения этих свойств.
КлючОбъект = СтрокаРезультата.Ссылка.ПолучитьОбъект();
КлючОбъект.ТипМестаХранения = СтрокаРезультата.УстановитьТип;
Если ТипЗнч(СтрокаРезультата.МестоХранения) = Тип("СправочникСсылка.Склады") Тогда
КлючОбъект.СкладскаяТерритория = СтрокаРезультата.МестоХранения;
ИначеЕсли ТипЗнч(СтрокаРезультата.МестоХранения) = Тип("СправочникСсылка.СтруктураПредприятия") Тогда
КлючОбъект.Подразделение = СтрокаРезультата.МестоХранения;
ИначеЕсли ТипЗнч(СтрокаРезультата.МестоХранения) = Тип("СправочникСсылка.Партнеры") Тогда
КлючОбъект.Партнер = СтрокаРезультата.МестоХранения;
ИначеЕсли ТипЗнч(СтрокаРезультата.МестоХранения) = Тип("СправочникСсылка.Организации") Тогда
КлючОбъект.Организация = СтрокаРезультата.МестоХранения;
ИначеЕсли ТипЗнч(СтрокаРезультата.МестоХранения) = Тип("СправочникСсылка.Контрагенты") Тогда
КлючОбъект.Контрагент = СтрокаРезультата.МестоХранения;
КонецЕсли;
Попытка
КлючОбъект.Записать();
СтрокаРезультата.Отработан = Истина;
Исключение
ОбщегоНазначения.СообщитьПользователю(ОписаниеОшибки());
КонецПопытки;
ПоказатьПрикладываю файл.
(!) Будьте осторожны! Защиты от дурака - не делал, тестового режима как такового нет.
Запрос можно спокойно запускать, но алгоритм кнопкой «Выполнить» - только при полном понимании что он выполнит с каждой строкой из результата запроса.
Прикрепленные файлы:
ЗаполнениеТипаИМестаХранения.sel
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот