В процессе работы торгового предприятия часто возникает задача оперативного обновления цен поставщиков. Ручной ввод данных из ежедневных Excel-файлов отнимает много времени и чреват ошибками. Рассмотрим, как автоматизировать этот процесс в 1С:УТ 11, включая перенос истории цен номенклатуры, начиная от стандартных инструментов и заканчивая полной автоматизацией через электронную почту.
Прежде чем приступать к программированию, проанализируем возможности, которые предоставляет типовая конфигурация. В 1С:УТ 11 существует специализированное рабочее место ЦеныПоставщиков, предназначенное для загрузки данных из внешних файлов. Разберем по шагам, как это работает:
Важным преимуществом этого метода является то, что 1С запоминает настройки сопоставления колонок (например, что в первой колонке идет Артикул, а в третьей — Цена). При следующей загрузке файла того же формата система подставит настройки автоматически.
Одной из главных сложностей, упомянутых в обсуждении, является несовпадение наименований товаров в вашей базе и в прайсе поставщика. Рассмотрим подробнее, как механизм НоменклатураПоставщика решает эту проблему.
В 1С:УТ 11 существует отдельный справочник, который позволяет выполнить загрузку номенклатуры контрагентов и хранит информацию о том, как конкретный товар называется у вашего контрагента. Выясним, как настроить связь:
Номенклатура вручную. После этого связь сохранится в базе данных, и в следующий раз система «узнает» этот товар.Теперь разберем ситуацию, когда мы хотим полностью исключить участие человека. Для этого нам понадобится настроить РегламентныеЗадания и интеграцию с почтой. Посмотрим на логику действий:
Шаг 1: Настройка учетной записи почты. В 1С должен быть настроен системный почтовый ящик, на который приходят прайсы. Программа должна иметь права на чтение входящих сообщений.
Шаг 2: Создание программного скрипта (обработки). Поскольку штатно 1С не умеет «сама» забирать файл из письма и запускать загрузку цен, нам потребуется небольшая доработка. Проанализируем примерную структуру кода, который может выполнять эту задачу:
Процедура ОбработатьВходящиеПисьма()
// Получаем почтовый профиль
Профиль = ПолучитьПрофильЭлектроннойПочты();
Почта = Новый Почта;
Почта.Подключиться(Профиль);
// Ищем письма от конкретного поставщика с вложениями
ПараметрыОтбора = Новый Структура("Прочитанное", Ложь);
МассивПисем = Почта.Выбрать(Ложь, ПараметрыОтбора);
Для Каждого Письмо Из МассивПисем Цикл
Для Каждого Вложение Из Письмо.Вложения Цикл
Если Найти(Вложение.ИмяФайла, ".xlsx") > 0 Тогда
ПутьКФайлу = "C:\Temp\" + Вложение.ИмяФайла;
Вложение.Данные.Записать(ПутьКФайлу);
// Далее вызываем процедуру загрузки цен
ЗагрузитьЦеныИзФайла(ПутьКФайлу, Письмо.Отправитель);
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецПроцедуры
Шаг 3: Настройка расписания. Созданное регламентное задание настраивается на ежедневный запуск. Оно будет проверять почту, сохранять файл и обновлять документ УстановкаЦенНоменклатуры или записи в регистре цен поставщиков.
Рассмотрим современные альтернативы классическим Excel-файлам. Если ваш поставщик идет в ногу со временем, можно использовать более надежные методы передачи данных:
Проанализируем ситуацию: если вы не являетесь программистом, наиболее рациональным путем будет использование готовых расширений. На профильных ресурсах, таких как Инфостарт, существуют универсальные загрузчики, которые уже включают в себя функционал мониторинга почты.
Важные моменты при настройке:
Справочник.НоменклатураПоставщиков. Это позволяет хранить разные названия одного и того же товара для разных поставщиков.Таким образом, мы выяснили, что задача автоматизации загрузки прайсов решается комплексно: штатные инструменты 1С:УТ 11 берут на себя логику хранения и сопоставления цен, а внешние механизмы (скрипты или расширения) обеспечивают автоматическую доставку данных из электронной почты в систему.