В процессе работы с 1С:Управление торговлей 11.5 часто возникают ситуации, когда необходимо полностью освободить один склад и перенести все остатки на другой. Это может быть связано с закрытием торговой точки, проведением масштабной инвентаризации на выделенном «виртуальном» складе или реорганизацией структуры хранения. Если номенклатура насчитывает сотни или тысячи позиций, ручной ввод или сканирование каждой единицы товара документом Перемещение товаров становится невозможным. Рассмотрим детально все эффективные способы решения этой задачи: от стандартных функций интерфейса до небольших программных доработок.
Самый простой и доступный способ, не требующий программирования — это использование штатного окна подбора в документе перемещения (дополнительно можно вывести остатки и цены в списки номенклатуры). Проанализируем, как сделать это максимально быстро.
Перемещение товаров (раздел Склад и доставка — Внутреннее товародвижение — Перемещения товаров). Для удобства можно добавить колонку остатков во внутренние документы.Ctrl + A на клавиатуре. Весь список номенклатуры подсветится желтым или синим цветом.Enter или кнопку Выбрать. Система запросит количество. Здесь можно нажать «ОК», если товаров немного, но для больших списков лучше использовать команду Перенести в документ.Важный нюанс: Если позиций очень много (более 5-10 тысяч), окно подбора может «задуматься» при обработке данных. В этом случае рекомендуем рассмотреть второй способ.
Если нам нужно перенести остатки «в ноль», мы можем сначала получить список этих остатков в виде таблицы, а затем мгновенно загрузить их в документ. Это самый надежный метод для огромных справочников.
Разберем алгоритм действий:
Перемещение товаров на вкладке Товары найдем кнопку Загрузить из файла (иконка папки с зеленой стрелкой).Если подобная операция требуется регулярно, можно автоматизировать заполнение табличной части. Рассмотрим пример программного кода, который позволяет копировать строки с учетом текущих остатков. Мы можем модифицировать стандартную процедуру копирования строк в буфер обмена, чтобы она подхватывала количество из регистра ТоварыНаСкладах.
Проанализируем пример кода для расширения, который позволяет модифицировать обработку печати этикеток или любой другой документ для массового копирования:
&Вместо("СкопироватьСтрокиВБуферОбмена")
Процедура ОРВ_СкопироватьСтрокиВБуферОбмена(ТабличнаяЧасть, Строки) Экспорт
ТаблицаЗначений = ТабличнаяЧасть.Выгрузить(Новый Массив);
// Проверяем наличие колонки с остатками для автоматического заполнения количества
ЕстьОстатокНаСкладе = ТаблицаЗначений.Колонки.Найти("ОстатокНаСкладе") <> Неопределено;
Если ЕстьОстатокНаСкладе Тогда
ТаблицаЗначений.Колонки.Добавить("Количество");
ТаблицаЗначений.Колонки.Добавить("КоличествоУпаковок");
КонецЕсли;
// Удаляем служебные колонки, которые не нужны при вставке в новый документ
УдаляемыеКолонки = Новый Массив;
УдаляемыеКолонки.Добавить("КодСтроки");
УдаляемыеКолонки.Добавить("ИдентификаторСтроки");
УдаляемыеКолонки.Добавить("КлючСвязи");
Для Каждого ИмяКолонки Из УдаляемыеКолонки Цикл
Колонка = ТаблицаЗначений.Колонки.Найти(ИмяКолонки);
Если Колонка <> Неопределено Тогда
ТаблицаЗначений.Колонки.Удалить(Колонка);
КонецЕсли;
КонецЦикла;
// Заполняем таблицу данными из строк-источников
Индекс = 0;
Для Каждого ИдентификаторСтроки Из Строки Цикл
ИсходнаяСтрока = ТабличнаяЧасть.НайтиПоИдентификатору(ИдентификаторСтроки);
НоваяСтрока = ТаблицаЗначений.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, ИсходнаяСтрока);
Если ЕстьОстатокНаСкладе Тогда
НоваяСтрока.КоличествоУпаковок = ИсходнаяСтрока.ОстатокНаСкладе;
НоваяСтрока.Количество = ИсходнаяСтрока.ОстатокНаСкладе;
КонецЕсли;
КонецЦикла;
ОбщегоНазначения.СкопироватьВБуферОбмена(ТаблицаЗначений, "КопированиеВставкаСтрок");
КонецПроцедуры
Этот метод удобен тем, что позволяет пользователю «забрать» остатки из любого отчета или обработки, где они выведены на экран, и просто нажать Вставить строки в документе Перемещение товаров.
Выясним причину, по которой товаровед просит создать отдельный склад. Если цель — зафиксировать остатки для инвентаризации, то в УТ 11.5 для этого предусмотрен специальный функционал, не требующий физического перемещения остатков в программе.
Рассмотрим правильную последовательность действий через инвентаризацию:
Пересчет товаров (Склад и доставка — Излишки, недостатки, порча — Пересчеты товаров).Списание недостач товаров и Оприходование излишков товаров.Преимущество: Вам не нужно создавать лишние склады и делать перемещения «туда-обратно», что часто путает бухгалтерию и искажает отчетность по себестоимости.
При массовом перемещении остатков мы можем столкнуться с рядом технических сложностей, которые помешают проведению документа:
Заказ клиента, программа не позволит его переместить. Перед операцией необходимо либо снять резервы, либо использовать документ Корректировка назначения товаров.Товары к передаче).Подводя итог, для разового быстрого перемещения мы рекомендуем Способ 2 (Excel) как самый стабильный. Для регулярных операций лучше один раз настроить Способ 3 (Расширение) или воспользоваться механизмом Заказ на перемещение, в котором часто доступна кнопка автоматического заполнения по остаткам в зависимости от настроек обеспечения.