Set Retail — это программа для автоматизации торговли. Подробнее: https://www.crystals.ru/avtomatizacija-torgovli
Обработка написана с использованием механизма веб сервисов 1С. http://v8.1c.ru/overview/Term_000000273.htm
Кассовая выгрузка Сет Ретейл может запускаться как вручную, так и автоматически (на два сервера сет ретейл по принадлежности кассы через реквизит справочника касс ККМ).
В ручном режиме можно выгрузить на кассовый сервер номенклатуру, дисконтные карты, скидки процентом на цену и акции, бонусный баланс. Имеется возможность в ручном режиме отбора по подразделению и по номенклатуре.
Автоматическая выгрузка реализована в виде трех регламентных заданий:
1) выгрузка назначения цен (переоценок) за последние несколько дней;
2) выгрузка окончания действия красных ценников (абсолютные скидки, вторая цена)за вчера и сегодня;
3) выгрузка начала действия красных ценников плюс минус несколько прошлых и будущих дней.
Текст регламентных заданий выгрузки цен и красных ценников на кассы Set Retail под спойлером.
Процедура СЕТ_ВыгрузкаЦен() Экспорт
ПараметрыСеанса.Пользователь=Справочники.Пользователи.НайтиПоКоду("Робот");
ПараметрыСеанса.исУправляемаяБлокировка=Ложь;
НачалоВыполнения = ТекущаяДата();
НовоеСообщениеИдентификаторФоновогоЗадания = СоздатьЗадачуСообщениеИдентификаторФоновогоЗадания();
Попытка
ПутьКВнешнемуФайлу = Справочники.ВнешниеПечатныеФормы.НайтиПоНаименованию("SetRetail_Обмен").ПутьКВнешнемуФайлу;
ВнОбработкаОбъект = ВнешниеОбработки.Создать(ПутьКВнешнемуФайлу, Ложь);
Исключение
ТекстСообщения = "Задание не выполнено: " + ОписаниеОшибки();
НовоеСообщениеИдентификаторФоновогоЗадания.ТекстСообщения = ТекстСообщения;
Возврат;
КонецПопытки;
Попытка
РезультатВыполнения = "";
ФлажокВыгрузить_СправочникНоменклатура = Ложь;
ФлажокВыгрузитьПрайсЛисты_Цены = Истина;
ФлажокВыгрузитьСхемыСкидок = Ложь;
ФлажокВыгрузить_ДК = Ложь;
ФлажокБонусныйБаланс = Ложь;
ВнОбработкаОбъект.ДнейВпередДляЦен = 1;
ВнОбработкаОбъект.ИгнорироватьОграничениеШтрихкодов = Истина;
ВнОбработкаОбъект.АдресСервера = "88888888";
ВнОбработкаОбъект.ПортСеревера = "88888888";
ВнОбработкаОбъект.SetЛогин = "88888888";
ВнОбработкаОбъект.SetПароль = "88888888";
ВнОбработкаОбъект.Режим = 0; //Выгрузка изменений цен
////{Отладка
//ВнОбработкаОбъект.ВТестовыйСервер = Истина; //Тестовый сервер
//ВнОбработкаОбъект.АдресСервера = "88888888"; //Тестовый сервер
//ТабТовары = Новый ТаблицаЗначений;
//ТабТовары.Колонки.Добавить("Ссылка",,"Ссылка");
//Стр = ТабТовары.Добавить();
//Стр.Ссылка = Справочники.Номенклатура.НайтиПоКоду("В3000014");
//ВнОбработкаОбъект.мОтборНоменклатура = ТабТовары;
////Отладка}
ВнОбработкаОбъект.Выгрузить(ФлажокВыгрузить_СправочникНоменклатура,
ФлажокВыгрузитьПрайсЛисты_Цены,
ФлажокВыгрузитьСхемыСкидок,
ФлажокВыгрузить_ДК,
ФлажокБонусныйБаланс);
ОкончаниеВыполнения = ТекущаяДата();
ТекстСообщения = "Начало выгрузки на старый сервер SetRetail: " + НачалоВыполнения + Символы.ПС
//+"Результат выполнения: " + РезультатВыполнения + Символы.ПС
+"Окончание выгрузки на старый сервер SetRetail: " + ОкончаниеВыполнения + Символы.ПС;
#Если Клиент Тогда
Сообщить(ТекстСообщения);
#КонецЕсли
ВнОбработкаОбъект.АдресСервера = "88888888";;
ВнОбработкаОбъект.Выгрузить(ФлажокВыгрузить_СправочникНоменклатура,
ФлажокВыгрузитьПрайсЛисты_Цены,
ФлажокВыгрузитьСхемыСкидок,
ФлажокВыгрузить_ДК,
ФлажокБонусныйБаланс);
ОкончаниеВыполнения = ТекущаяДата();
ТекстСообщения = ТекстСообщения+ "Начало выгрузки на новый сервер SetRetail: " + НачалоВыполнения + Символы.ПС
//+"Результат выполнения: " + РезультатВыполнения + Символы.ПС
+"Окончание выгрузки на новый сервер SetRetail: " + ОкончаниеВыполнения + Символы.ПС;
#Если Клиент Тогда
Сообщить(ТекстСообщения);
#КонецЕсли
НовоеСообщениеИдентификаторФоновогоЗадания.ТекстСообщения = ТекстСообщения;
НовоеСообщениеИдентификаторФоновогоЗадания.ВыполнитьЗадачу();
Исключение
ТекстСообщения = "Задание не выполнено: " + ОписаниеОшибки();
НовоеСообщениеИдентификаторФоновогоЗадания.ТекстСообщения = ТекстСообщения;
НовоеСообщениеИдентификаторФоновогоЗадания.Записать();
КонецПопытки;
КонецПроцедуры
Процедура СЕТ_ВыгрузкаНачалаКрасныхЦен() Экспорт
ПараметрыСеанса.Пользователь=Справочники.Пользователи.НайтиПоКоду("Робот");
ПараметрыСеанса.исУправляемаяБлокировка=Ложь;
НачалоВыполнения = ТекущаяДата();
НовоеСообщениеИдентификаторФоновогоЗадания = СоздатьЗадачуСообщениеИдентификаторФоновогоЗадания();
Попытка
ПутьКВнешнемуФайлу = Справочники.ВнешниеПечатныеФормы.НайтиПоНаименованию("SetRetail_Обмен").ПутьКВнешнемуФайлу;
ВнОбработкаОбъект = ВнешниеОбработки.Создать(ПутьКВнешнемуФайлу, Ложь);
Исключение
ТекстСообщения = "Задание не выполнено: " + ОписаниеОшибки();
НовоеСообщениеИдентификаторФоновогоЗадания.ТекстСообщения = ТекстСообщения;
Возврат;
КонецПопытки;
Попытка
РезультатВыполнения = "";
ФлажокВыгрузить_СправочникНоменклатура = Ложь;
ФлажокВыгрузитьПрайсЛисты_Цены = Истина;
ФлажокВыгрузитьСхемыСкидок = Ложь;
ФлажокВыгрузить_ДК = Ложь;
ФлажокБонусныйБаланс = Ложь;
ВнОбработкаОбъект.ДнейВпередДляЦен = 1;
ВнОбработкаОбъект.ИгнорироватьОграничениеШтрихкодов = Истина;
ВнОбработкаОбъект.АдресСервера = "88888888";
ВнОбработкаОбъект.ПортСеревера = "88888888";
ВнОбработкаОбъект.SetЛогин = "88888888";
ВнОбработкаОбъект.SetПароль = "88888888";
ВнОбработкаОбъект.Режим = 1; //Выгрузка начала красных ценников
ВнОбработкаОбъект.Чистить2ЦенуТовара = Ложь;
////{Отладка
//ВнОбработкаОбъект.ВТестовыйСервер = Истина; //Тестовый сервер
//ВнОбработкаОбъект.АдресСервера = "88888888"; //Тестовый сервер
//ТабТовары = Новый ТаблицаЗначений;
//ТабТовары.Колонки.Добавить("Ссылка",,"Ссылка");
//Стр = ТабТовары.Добавить();
//Стр.Ссылка = Справочники.Номенклатура.НайтиПоКоду("В3000014");
//ВнОбработкаОбъект.мОтборНоменклатура = ТабТовары;
////Отладка}
ВнОбработкаОбъект.Выгрузить(ФлажокВыгрузить_СправочникНоменклатура,
ФлажокВыгрузитьПрайсЛисты_Цены,
ФлажокВыгрузитьСхемыСкидок,
ФлажокВыгрузить_ДК,
ФлажокБонусныйБаланс);
ОкончаниеВыполнения = ТекущаяДата();
ТекстСообщения = "Начало выгрузки начала действия красных ценников на старый сервер SetRetail: " + НачалоВыполнения + Символы.ПС
//+"Результат выполнения: " + РезультатВыполнения + Символы.ПС
+"Окончание выгрузки на старый сервер SetRetail: " + ОкончаниеВыполнения + Символы.ПС;
#Если Клиент Тогда
Сообщить(ТекстСообщения);
#КонецЕсли
ВнОбработкаОбъект.АдресСервера = "88888888";
ВнОбработкаОбъект.Выгрузить(ФлажокВыгрузить_СправочникНоменклатура,
ФлажокВыгрузитьПрайсЛисты_Цены,
ФлажокВыгрузитьСхемыСкидок,
ФлажокВыгрузить_ДК,
ФлажокБонусныйБаланс);
ОкончаниеВыполнения = ТекущаяДата();
ТекстСообщения = ТекстСообщения+ "Начало выгрузки начала действия красных ценников на новый сервер SetRetail: " + НачалоВыполнения + Символы.ПС
//+"Результат выполнения: " + РезультатВыполнения + Символы.ПС
+"Окончание выгрузки на новый сервер SetRetail: " + ОкончаниеВыполнения + Символы.ПС;
#Если Клиент Тогда
Сообщить(ТекстСообщения);
#КонецЕсли
НовоеСообщениеИдентификаторФоновогоЗадания.ТекстСообщения = ТекстСообщения;
НовоеСообщениеИдентификаторФоновогоЗадания.ВыполнитьЗадачу();
Исключение
ТекстСообщения = "Задание не выполнено: " + ОписаниеОшибки();
НовоеСообщениеИдентификаторФоновогоЗадания.ТекстСообщения = ТекстСообщения;
НовоеСообщениеИдентификаторФоновогоЗадания.Записать();
КонецПопытки;
КонецПроцедуры
Процедура СЕТ_ВыгрузкаКонцаКрасныхЦен() Экспорт
ПараметрыСеанса.Пользователь=Справочники.Пользователи.НайтиПоКоду("Робот");
ПараметрыСеанса.исУправляемаяБлокировка=Ложь;
НачалоВыполнения = ТекущаяДата();
НовоеСообщениеИдентификаторФоновогоЗадания = СоздатьЗадачуСообщениеИдентификаторФоновогоЗадания();
Попытка
ПутьКВнешнемуФайлу = Справочники.ВнешниеПечатныеФормы.НайтиПоНаименованию("SetRetail_Обмен").ПутьКВнешнемуФайлу;
ВнОбработкаОбъект = ВнешниеОбработки.Создать(ПутьКВнешнемуФайлу, Ложь);
Исключение
ТекстСообщения = "Задание не выполнено: " + ОписаниеОшибки();
НовоеСообщениеИдентификаторФоновогоЗадания.ТекстСообщения = ТекстСообщения;
Возврат;
КонецПопытки;
Попытка
РезультатВыполнения = "";
ФлажокВыгрузить_СправочникНоменклатура = Ложь;
ФлажокВыгрузитьПрайсЛисты_Цены = Истина;
ФлажокВыгрузитьСхемыСкидок = Ложь;
ФлажокВыгрузить_ДК = Ложь;
ФлажокБонусныйБаланс = Ложь;
ВнОбработкаОбъект.ДнейВпередДляЦен = -1;
ВнОбработкаОбъект.ИгнорироватьОграничениеШтрихкодов = Истина;
ВнОбработкаОбъект.АдресСервера = "88888888";
ВнОбработкаОбъект.ПортСеревера = "88888888";
ВнОбработкаОбъект.SetЛогин = "88888888";
ВнОбработкаОбъект.SetПароль = "88888888";
ВнОбработкаОбъект.Режим = 2; //Выгрузка конца красных ценников
ВнОбработкаОбъект.Чистить2ЦенуТовара = Истина;
////{Отладка
//ВнОбработкаОбъект.ВТестовыйСервер = Истина; //Тестовый сервер
//ВнОбработкаОбъект.АдресСервера = "88888888"; //Тестовый сервер
//ТабТовары = Новый ТаблицаЗначений;
//ТабТовары.Колонки.Добавить("Ссылка",,"Ссылка");
//Стр = ТабТовары.Добавить();
//Стр.Ссылка = Справочники.Номенклатура.НайтиПоКоду("В3000014");
//ВнОбработкаОбъект.мОтборНоменклатура = ТабТовары;
////Отладка}
ВнОбработкаОбъект.Выгрузить(ФлажокВыгрузить_СправочникНоменклатура,
ФлажокВыгрузитьПрайсЛисты_Цены,
ФлажокВыгрузитьСхемыСкидок,
ФлажокВыгрузить_ДК,
ФлажокБонусныйБаланс);
ВнОбработкаОбъект.ДнейВпередДляЦен = 0;
ВнОбработкаОбъект.ИгнорироватьОграничениеШтрихкодов = Истина;
ВнОбработкаОбъект.АдресСервера = "88888888";
ВнОбработкаОбъект.ПортСеревера = "88888888";
ВнОбработкаОбъект.SetЛогин = "88888888";
ВнОбработкаОбъект.SetПароль = "88888888";
ВнОбработкаОбъект.Режим = 2; //Выгрузка конца красных ценников
ВнОбработкаОбъект.Чистить2ЦенуТовара = Ложь;
////{Отладка
//ВнОбработкаОбъект.ВТестовыйСервер = Истина; //Тестовый сервер
//ВнОбработкаОбъект.АдресСервера = "88888888"; //Тестовый сервер
//ТабТовары = Новый ТаблицаЗначений;
//ТабТовары.Колонки.Добавить("Ссылка",,"Ссылка");
//Стр = ТабТовары.Добавить();
//Стр.Ссылка = Справочники.Номенклатура.НайтиПоКоду("В3000014");
//ВнОбработкаОбъект.мОтборНоменклатура = ТабТовары;
////Отладка}
ВнОбработкаОбъект.Выгрузить(ФлажокВыгрузить_СправочникНоменклатура,
ФлажокВыгрузитьПрайсЛисты_Цены,
ФлажокВыгрузитьСхемыСкидок,
ФлажокВыгрузить_ДК,
ФлажокБонусныйБаланс);
ОкончаниеВыполнения = ТекущаяДата();
ТекстСообщения = "Начало выгрузки конца действия красных ценников на старый сервер SetRetail: " + НачалоВыполнения + Символы.ПС
//+"Результат выполнения: " + РезультатВыполнения + Символы.ПС
+"Окончание выгрузки на старый сервер SetRetail: " + ОкончаниеВыполнения + Символы.ПС;
#Если Клиент Тогда
Сообщить(ТекстСообщения);
#КонецЕсли
ВнОбработкаОбъект.АдресСервера = "88888888";
ВнОбработкаОбъект.Выгрузить(ФлажокВыгрузить_СправочникНоменклатура,
ФлажокВыгрузитьПрайсЛисты_Цены,
ФлажокВыгрузитьСхемыСкидок,
ФлажокВыгрузить_ДК,
ФлажокБонусныйБаланс);
ОкончаниеВыполнения = ТекущаяДата();
ТекстСообщения = ТекстСообщения+ "Начало выгрузки конца действия красных ценников на новый сервер SetRetail: " + НачалоВыполнения + Символы.ПС
//+"Результат выполнения: " + РезультатВыполнения + Символы.ПС
+"Окончание выгрузки на новый сервер SetRetail: " + ОкончаниеВыполнения + Символы.ПС;
#Если Клиент Тогда
Сообщить(ТекстСообщения);
#КонецЕсли
НовоеСообщениеИдентификаторФоновогоЗадания.ТекстСообщения = ТекстСообщения;
НовоеСообщениеИдентификаторФоновогоЗадания.ВыполнитьЗадачу();
Исключение
ТекстСообщения = "Задание не выполнено: " + ОписаниеОшибки();
НовоеСообщениеИдентификаторФоновогоЗадания.ТекстСообщения = ТекстСообщения;
НовоеСообщениеИдентификаторФоновогоЗадания.Записать();
КонецПопытки;
КонецПроцедуры
Реализована загрузка кассовой смены с сервера Сет Ритейл в 1С Торговый комплекс.
Адреса, логины и пароли заменены на "88888888".
(0), А чем обработка Раруса не подошла?
(1) Кирилл, конфигурация Торговый комплекс очень старая и не самая распространенная, поэтому когда принималось решение о приобретении Сет Ритейл не было известно о существовании разработок Раруса, таким образом данное решение основано на собственных разработках, а не на разработках Раруса. Так что перед Вами альтернативный вариант.
(2), на сколько я помню, сейчас версия 08.1.25 или больше. Но уже давно у них есть Универсальный Кассовый Сервер, который позволяет подключить любую кассу, хоть Штрих, хоть свою. SetRetail они позже подключили в эту обработку.
(3) Кирилл, у нас не продовольственный магазин и никогда не использовалось встроенный кассовый обмен, у нас был РМК, УКМ и Сет Ритейл. Поделитесь опытом, как Вы получили обработку у Раруса.
(4). Я работал в продуктовом Ритейле. На базе нашего Ритейла писался Торговый комплекс. Тогда был доступ к Мантису с обработками.
(5) Кирилл, спасибо! Мантис это разработчик?
(6), не Мантис — система учета задач MantisBT (https://www.mantisbt.org) . Они ее использовали для учета наших хотелок и ошибок. Если не ошибаюсь адрес был http://www.oapprt.ru/mantis/
(7) Большое Вам спасибо, Кирилл, попробую пролезть туда, все-таки когда-то мы покупали Торговый комплекс.
(8) на сколько я сейчас знаю надо оформлять платную подписку типа ИТС. Но это лучше уточнить у службы поддержки Раруса.