==== Задача : ==== Исключить ошибки при закрытии месяца, в виде отрицательных остатков товара. Отрицательные остатки товара возникают из-за того, что товар продается с ндс со складов ЕНВД и наоборот в розницу со складов с НДС ==== Решение : ==== Схема работы: * При проведении реализации проверяем наличие в тч Товары складов с применением ЕНВД (рег свр ПримененияЕНВД), при наличии таких строк пишем реализацию в регистр сведений (итмс_ДокументыКОбработке_НДС_ЕНВД) * При запуске обработки итмс_ПеремещениеТоваров_НДС_ЕНВД: * Обработка оптовых документов (реализаций). Используем массив ПеремещенияКПроведению, массив РеализацииКпроведению, массив ЗаказыКПроведению * Подготовка перемещений с розничных складов на служебный оптовый склад (Служебный склад НДС). * Схема запроса 1: Результат выборка данных (склад, номенклатура, количество) с итогами по складу * Пройдем циклом по выборке и создадим перемещения с заполнением тч и записью ссылок на созданные документы в массив ПеремещенияКПроведению * Обработка Реализаций и связанных ЗаказовКлиентов * Схема запроса 2: Результат выборка данных (Реализация,НомерСтроки, Товар, Склад, ЗаказКлиента) Итоги по реализация * Пройдем циклом по выборке: * Реализация в массив РеализацииКпроведению, * Отменить проведение реализации * Цикл по ТЧ Товары Реализации * Заказ в Массив ЗаказыКПроведению * Найти строку в ТЧ Товары по номеру, * Функция НайтиСтрокуВЗаказеИЗаменитьСклад(стр,заказ) * Док = Заказ.ПолучитьОбъект() * Док.ОбменДанными.Загрузка = Истина; * Заказ.Товары найти (номенклатура, количество, ВариантОбеспечения = Перечисления.ВариантыОбеспечения.Отгрузить, склад = Склад или склад = шапка слад) * Заменить склад на Служебный склад НДС * Док.Записать(); * Стр склад = Служебный склад НДС * Проведение документов * Отменяем проведение цикл по массиву ЗаказыКПроведению * Проводим перемещения - цикл по массиву ПеремещенияКпроведению * Проводим Заказы по массиву ЗаказыКПроведению * Проводим реализации по массиву РеализацииКПроведению. Схема запроса 1 1. "СкладыЕНВД". Получим список складов ЕНВД из регистра сведений ПрименениеЕНВД. Поля: Склад 2. "ДокументыКОбработке". Получим список реализаций для обработки из регистра сведений итмс_ДокументыКОбработке_НДС_ЕНВД условие Обработан = Ложь. Поля: Документ 3. Из ТЧ Товары РеализацииТоваровУслуг. Выборка данных Условия: 1. Ссылка в Реализации 2. Склад в СкладыЕНВД Поля: Номенклатура, Склад, Количество. Группировка: Номенклатура, Склад, Сумма (Количество). Итоги: Склад Схема запроса 2 1. "СкладыЕНВД". Получим список складов ЕНВД из регистра сведений ПрименениеЕНВД. Поля: Склад 2. "ДокументыКОбработке".Получим список реализаций для обработки из регистра сведений итмс_ДокументыКОбработке_НДС_ЕНВД условие Обработан = Ложь. Поля: Документ 3. Из ТЧ Товары РеализацииТоваровУслуг. Выборка данных Условия: 1. Ссылка в Реализации 2. Склад в СкладыЕНВД Поля: Реализация, НомерСтроки, Номенклатура, Склад, ЗаказКлиента. Порядок: Реализация.Дата Возрастание. Итоги: Реализация Новые метаданные: - подсистема итмс_ПеремещениеНДС_ЕНВД (в итмс_ДополнительныйФункционал) - рег. свр итмс_НастройкиПеремещенияНДС_ЕНВД - Измерения () - Ресурсы (Организация,СлужебныйСкладНДС,СлужебныйСкладЕНВД) - рег. свр итмс_ДокументыКОбработке_НДС_ЕНВД - Измерения( Организация (тип спр.Организации) Документ (тип РеализацияТоваровУслуг, ЧекККМ); - Ресурсы (Обработан (тип булево)) - обработка итмс_ПеремещениеТоваров_НДС_ЕНВД