В процессе активной торговли часто возникает задача максимально быстро оформить отгрузку всех имеющихся на складе товаров. В типовой конфигурации 1С:Управление нашей фирмой (УНФ) в документе Расходная накладная кнопка «Заполнить по остаткам на складе» в явном виде может отсутствовать, в отличие от документа Инвентаризация запасов. Однако существует несколько эффективных способов решить эту задачу без необходимости вручную вводить каждую позицию. Разберем подробно каждый из них.
Проанализируем самый простой и быстрый способ, который не требует доработок системы. В 1С:УНФ реализован мощный механизм обмена данными между табличными частями разных документов через внутренний буфер обмена. Рассмотрим пошагово, как этим воспользоваться:
Инвентаризация запасов.Склад, по которому мы хотим увидеть остатки.Ctrl+A).Расходную накладную.Важный нюанс: При таком способе переносятся не только наименования, но и количество, характеристики и единицы измерения. Это позволяет мгновенно заполнить накладную сотнями позиций.
Рассмотрим ситуацию, когда нам нужно заполнить накладную через стандартное окно подбора, но при этом избежать «тыканья» в каждый артикул. Выясним, как ускорить этот процесс:
В документе Расходная накладная нажмем кнопку Подбор. Перед нами откроется форма выбора товаров. Чтобы автоматизировать процесс, выполним следующие настройки:
Shift, нажмем на последнюю строку. Все позиции будут выделены синим цветом.Проанализируем более методически правильный подход для управленческого учета. В 1С:УНФ документ Заказ покупателя обладает более гибкими инструментами заполнения. Если ваша бизнес-логика позволяет, пройдем по следующему пути:
Заказ покупателя.Расходная накладная.Если вам необходимо предварительно отредактировать список товаров, которые уйдут в накладную, разберем метод работы через внешние файлы. Рассмотрим этот алгоритм:
Excel.Расходная накладная воспользуемся штатной кнопкой Загрузить данные из внешнего источника.Если же требуется решение «одной кнопкой» без использования промежуточных документов, наиболее правильным путем будет создание небольшого расширения. Это позволит не снимать конфигурацию с поддержки. Программист может реализовать команду, которая будет выполнять запрос к регистру накопления ЗапасыНаСкладах.
Посмотрим на пример логики, которую может содержать такое расширение для заполнения таблицы товаров свободными остатками:
// Пример упрощенной логики для программного заполнения
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЗапасыОстатки.Номенклатура КАК Номенклатура,
| ЗапасыОстатки.Характеристика КАК Характеристика,
| ЗапасыОстатки.КоличествоОстаток КАК Количество
|ИЗ
| РегистрНакопления.Запасы.Остатки(&МоментВремени, Склад = &Склад) КАК ЗапасыОстатки";
Запрос.УстановитьПараметр("МоментВремени", Объект.Дата);
Запрос.УстановитьПараметр("Склад", Объект.СтруктурнаяЕдиница);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
НоваяСтрока = Объект.Запасы.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, Выборка);
КонецЦикла;
Использование расширения — это самый комфортный путь для пользователя, так как кнопка «Заполнить по остаткам» появится непосредственно в меню заполнения Расходной накладной.
При использовании любого из вышеперечисленных методов следует учитывать специфику настроек вашей базы 1С:УНФ:
Заказ покупателя, Расходная накладная может не провериться, если в настройках запрещено списание при отсутствии остатка.Расходный ордер.Таким образом, мы рассмотрели как стандартные способы (буфер обмена, подбор, загрузка из Excel), так и возможность автоматизации через создание расширения. Выбор конкретного метода зависит от частоты возникновения такой задачи и готовности к небольшим техническим доработкам системы.