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