Загрузка товара с ценами и штрих-кодами EAN-13 в весы серии "Масса-К" для УТ 11.2.2.116 в формате dbf (переписана из обработки ТиС 9.2) на УФ для серверной базы

25.01.16

Учетные задачи - Розничная торговля

В процессе внедрения УТ 11.2 была задача переписать обработку загрузки товаров в весы с печатью этикеток серии "Масса-К" для формирования файла "massa.dbf" из 1С 7.7: Торговля+Склад 9.2. Обработка написана с учетом универсальности работы как в файловом, так и в клиент-серверном режиме. Также учтен возможный отказ от модальности в последующих релизах УТ 11.2. Подробно разбирается формат весов серии "Масса-К". Выгружаются только корректные данные (ШК, Цены). Предусмотрен режим выгрузки только весового товара или по конкретной единице измерения (кг, 0.1 кг). Дополнительно для печати этикетки выгружается информация по каталогу продукции.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование SM По подписке [?] Купить один файл
ВыгрузкаВВесыМассаДляУТ_11_2_версия 1.0.0.1
.epf 34,81Kb
11
11
1 SM
Скачать Купить за 1 850 руб.
Загрузка в весы МассаК для 7.7
.ert 190,50Kb
6
6
1 SM
Скачать Купить за 1 850 руб.

Интерфейс обработки для УТ 11.2 нижеследующий:

Для удобства эксплуатации есть проверка заполнения реквизитов и поддержка, связанная с отсутствием модальности в диалоге (тут в помощь стандартный рефакторинг платформы 1С 8.3.7).

В исходных данных к задаче была обработка для ТиС 9.2 и образец файла "massa.dbf" - далее уже сторонним ПО этот файл подгружается в весы серии "Масса-К".

Внешний вид обработки-прототипа для 7.7:

 

Контрольный пример в dbf-редакторе:

 

Скриншот описания полей из dbf-редактора:

 

 

Описание формата из 7.7 следующее (из кода 7.7):

_ИмяФайла = "massa.dbf";
	_РабКаталог=_РабКаталог+_ИмяФайла;
	
	_ДБФ_Товар=СоздатьОбъект("XBase"); 
	
    _ДБФ_Товар.ДобавитьПоле("PRD_ID",  "S", 12,0);              // код товара, реально в типовых не больше 9 
    _ДБФ_Товар.ДобавитьПоле("PRD_NAME","S",255,0);              // наименование товара, реально в типовых не больше 50 
    _ДБФ_Товар.ДобавитьПоле("FLG_CNTR","S",  1,0);              // флаг центровки наименования
	
	_ДБФ_Товар.ДобавитьПоле("PRD_CODE","S", 32,0);              // код товара (дополнительно, опционально) 
    _ДБФ_Товар.ДобавитьПоле("PRD_PLU", "S",  8,0);              // код быстрого вызова товара (опционально)

	_ДБФ_Товар.ДобавитьПоле("PRD_PREF","S",  2,0);           	// префикс штрихкода (опционально)
	_ДБФ_Товар.ДобавитьПоле("PRD_BAR", "S", 13,0);              // штрих-код товара, обычно EAN13         
	                 
    _ДБФ_Товар.ДобавитьПоле("GRP_ID",  "S", 12,0);              // код группы товара
    _ДБФ_Товар.ДобавитьПоле("GRP_NAME","S",255,0);              // наименование группы товара
	
    _ДБФ_Товар.ДобавитьПоле("MSR_ID",  "S",  3,0);              // код базовой единицы измерения товара по ОКЕИ
    _ДБФ_Товар.ДобавитьПоле("MSR_NAME","S", 25,0);              // наименование базовой единицы измерения товара по ОКЕИ
	
    _ДБФ_Товар.ДобавитьПоле("PRD_PRCE","S", 15,0);              // цена товара     
    _ДБФ_Товар.ДобавитьПоле("PRD_CERT","S",  4,0);              // код органа сертификации    
    _ДБФ_Товар.ДобавитьПоле("PRD_CMP1","S",255,0);              // cостав товара - часть 1    
    _ДБФ_Товар.ДобавитьПоле("PRD_CMP2","S",255,0);              // cостав товара - часть 2  
    _ДБФ_Товар.ДобавитьПоле("PRD_TARE","S", 15,0);              // вес тары (упаковки)   
    _ДБФ_Товар.ДобавитьПоле("PRD_LIFE","S", 16,0);              // срок годности 
    _ДБФ_Товар.ДобавитьПоле("PRD_DATE","S", 16,0);              // дата упаковки 
    _ДБФ_Товар.ДобавитьПоле("PRD_INFO","S",255,0);              // информационно-рекламное сообщение
	

Примечание: обработка, видимо, переработанная от фирмы-производителя, раз есть поддержка многих конфигураций: "// 1-ТиС, 2-Комплекс, 3-ПУБ, 4-Бухгалтерия, 5-УСН, 6-Предприниматель, 0-что-то оригинальное"

 Пример номенклатуры для выгрузки в весы:

 

Можно посмотреть, что в УТ 11.2 предусмотрены более гибкие возможности по работе именно с ВЕСОВЫМ товаром - указание веса "невесовой" единицы.

НО, в целях упрощения задачи я выбрал в качестве источника данных УТ 11.2 регистр штрихкодов номенклатуры:

Во-первых, есть запрет в конфигураторе на пустые записи по реквизиту регистра ШК "номенклатура":

 

Во-вторых, не все ШК могут быть заполнены в результате переноса и эксплуатации (лично наткнулся на такие). Дальше то же самое касается и цен номенклатуры (это чаще). Отборы проводятся по нижеприведенным запросам, а окончательная фильтрация с выбросом в лог ошибок:

        Запрос = Новый Запрос;
	Запрос.УстановитьПараметр("ВидЦены", Объект.ВидЦены); // Общий параметр!
	
	Если Объект.ФлагВыгрВесового Тогда
		Запрос.Текст =
		"ВЫБРАТЬ
		|	ШК.Штрихкод,
		|	ШК.Номенклатура,
		|	ЕСТЬNULL(ЦеныПрайс.Цена, 0) КАК Цена,
		|	ШК.Номенклатура.Код КАК Код,
		|	ШК.Номенклатура.ЭтоГруппа КАК ЭтоГруппа,
		|	ШК.Номенклатура.Родитель КАК Родитель,
		|	ШК.Номенклатура.Наименование КАК Наименование,
		|	ШК.Номенклатура.Артикул КАК Артикул,
		|	ШК.Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
		|	ШК.Номенклатура.ЕдиницаИзмерения.Код КАК ЕдиницаИзмеренияКод,
		|	ШК.Номенклатура.ЕдиницаИзмерения.Наименование КАК ЕдиницаИзмеренияНаименование,
		|	ШК.Номенклатура.Родитель.Наименование КАК РодительНаименование,
		|	ШК.Номенклатура.Родитель.Код КАК РодительКод
		|ИЗ
		|	РегистрСведений.ШтрихкодыНоменклатуры КАК ШК
		|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ) КАК ЦеныПрайс
		|		ПО ШК.Номенклатура = ЦеныПрайс.Номенклатура
		|ГДЕ
		|	ЦеныПрайс.ВидЦены = &ВидЦены
		|	И ШК.Номенклатура.ВесИспользовать
		|
		|УПОРЯДОЧИТЬ ПО
		|	ЭтоГруппа УБЫВ,
		|	Наименование";
	Иначе
		Запрос.УстановитьПараметр("парЕдиницаИзмерения", Объект.ЕдИзмер);
		Запрос.Текст = 
		"ВЫБРАТЬ
		|	ШК.Штрихкод,
		|	ШК.Номенклатура,
		|	ЕСТЬNULL(ЦеныПрайс.Цена, 0) КАК Цена,
		|	ШК.Номенклатура.Код КАК Код,
		|	ШК.Номенклатура.ЭтоГруппа КАК ЭтоГруппа,
		|	ШК.Номенклатура.Родитель КАК Родитель,
		|	ШК.Номенклатура.Наименование КАК Наименование,
		|	ШК.Номенклатура.Артикул КАК Артикул,
		|	ШК.Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
		|	ШК.Номенклатура.ЕдиницаИзмерения.Код КАК ЕдиницаИзмеренияКод,
		|	ШК.Номенклатура.ЕдиницаИзмерения.Наименование КАК ЕдиницаИзмеренияНаименование,
		|	ШК.Номенклатура.Родитель.Наименование КАК РодительНаименование,
		|	ШК.Номенклатура.Родитель.Код КАК РодительКод
		|ИЗ
		|	РегистрСведений.ШтрихкодыНоменклатуры КАК ШК
		|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ) КАК ЦеныПрайс
		|		ПО ШК.Номенклатура = ЦеныПрайс.Номенклатура
		|ГДЕ
		|	ЦеныПрайс.ВидЦены = &ВидЦены
		|	И ШК.Номенклатура.ЕдиницаИзмерения = &парЕдиницаИзмерения
		|
		|УПОРЯДОЧИТЬ ПО
		|	ЭтоГруппа УБЫВ,
		|	Наименование";
	КонецЕсли;
	
	//ТЗ = Запрос.Выполнить().Выгрузить(); // ОТЛАДКА Закомментить!!!
	
	Выборка = Запрос.Выполнить().Выбрать(); // Внимание!!! Могут (обязательно) быть дубли по Штрих-кодам (это измерение регистра)
	
	Структ.Вставить("КолЗапросом", Выборка.Количество() );
	Сказать("Получено запросом (с дублями ШК) из базы: "+Структ.КолЗапросом);
	
	Возврат Выборка;

 

В третьих, лог ошибок ведется в ОЗУ на сервере (с целью оптимизации при больших объемах базы). Примечание: в серверном режиме файл создается во временном каталоге Сервера 1С, далее, если все прошло без ошибок, копируется на локальный компьютер по заданному пути. Замечу, что у объекта XBase что в 1С 7.7, что в 1С 8.х есть особенность, что нужно или устанавливать флаг "Автосохранение", или при добавлении каждой записи сохранять программно. В результате такого подхода можно получить в случае сбоя урезанный вариант. В случае фатальной ошибке в моей обработке мы подобного не получим: на локальный ПК с Сервера 1С ничего скопировано не будет, а будет попытка стереть временный файл.


При переносе функционала для УТ 11.2.2.116 предусмотрена выгрузка информации по структуре каталога:

  • поле "GRP_ID" - код группы товара;
  • поле "GRP_NAME" - наименование группы товара.

 Может быть полезной при печати этикеток.

 

Недостатки (в виду упрощения задачи):

1. Отсутствие гибкого отбора: либо только весовой товар (реквизит типа "булево" справочника УТ 11.2 "ВесИспользовать"), либо по конкретной весовой единице измерения (следствие первоначального переноса данных из ТиС 9.2 при переходе на УТ 11.2

По-хорошему все-таки нужно наводить порядок и использовать стандартные возможности УТ 11.2 устанавляивая галочку "весовой" и указывать в карточке номенклатуры массу для невесовых единиц (это уже методология учета пошла).

2. Нет поддержки характеристик. Делалось для продуктовых магазинов, где количество номенклатуры превышает десятки тысяч.

3. Нет индикации процесса выгрузки. По-максимуму предусмотрен контроль ошибок, если произойдет сбой на сервере 1С, через конструкции попытка-исключение. Фрагмент кода ниже

&НаКлиенте
Процедура ПоказатьОшибкиНаКлиенте(Знач Структ, КонецПрограммы = Ложь)
	
	Перем Кол, СписокОшибок, т, Текст;
	
	СписокОшибок = Структ.СписокОшибок;
	Кол = СписокОшибок.Количество();
	Структ.Вставить("КолОшибок", Кол);
	КолЗапросом = Структ.КолЗапросом;
	Если Кол = 0 Тогда
		Если КонецПрограммы Тогда
			Текст = "Все в порядке. Выгрузили "+Структ.КолЗап+" записей о товарах в файл! Ошибок нет!";
			Сказать(Текст);
		КонецЕсли;
	Иначе
		Текст = "--->Файл получен, но есть ошибки! НЕ выгружено: "+Кол+". Подробно: "+Символы.ПС;
		Для т=1 По Кол Цикл
			Текст = Текст +Символы.Таб+т+". - "+СписокОшибок.Получить(т-1).Значение+Символы.ПС; // С отступом и нумерацией!
		КонецЦикла;	
		Текст = Текст + "===>Конец";
		Сказать(Текст);
	КонецЕсли;
	

КонецПроцедуры

 

Принимаются пожелания и предложения по модификации данной обработке и написанию аналогичных.

Ссылка на первоисточник и документацию тут:

Весы Весы Масса-К МассаК Управление торговлей 11.2 DBF выгрузка в весы обмен с весами масса-к форма выгрузки в Масса-К описание формата *.dbf в весы Масса-К

См. также

Бюджетирование и планирование Оптовая торговля Розничная торговля Логистика, склад и ТМЦ Анализ продаж Пользователь Платформа 1С v7.7 Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Система управления запасами для 1С помогает работать с запасами правильно: автоматически рассчитывает потребность и делает заказ поставщику, загружает прайсы, перемещает товары по филиалам, анализирует продажи и позволяет управлять ассортиментом.

28500 руб.

21.04.2017    93680    119    40    

210

Оптовая торговля Розничная торговля ККМ ЭДО и ОФД Обмен с ГосИС Системный администратор Программист Оперативный учет 7.7 Бухгалтерский учет 7.7 1С:Бухгалтерия 7.7 1С:Комплексная 7.7 1С:Торговля и склад 7.7 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Россия Платные (руб)

Подключение фискального регистратора к 1С 7.7 в режиме онлайн-кассы (в соответствии с 54-ФЗ). Поддержка крайних версий драйверов ККТ: ДТО 10 и ДТО 8 для Атол, 4.15, 5.16 для Штрих-М. Поддержка протоколов ФФД 1.0, 1.05, 1.1 и 1.2, развитые настройки для применения частичных оплат и авансов в оптовой и розничной торговле. Поддержка чеков коррекции всех версий. Поддержка розничной продажи маркированной продукции (ЕГАИС, табак, обувь, лекарства, шины, одежда, белье, парфюмерия, молочная продукция, вода и пр.). Вывод электронного чека (на е-майл, телефон) по требованию покупателя, поддерживаются комбинированные типы оплаты, режим эмуляции печати чека на ФР. Полный цикл работы из 1С 7.7 с маркировкой Честный ЗНАК (ГИСМТ, ЦРПТ) из 1С 7.7. ЭДО (табак, обувь, шины, одежда, молочная продукция, вода и прочие группы товаров) для розницы и опта (приемка и оптовая отгрузка маркированной продукции). Поддерживается как объемно-сортовой учет (ОСУ) так и поштучный (поэкземплярный) учет.

2000 руб.

28.03.2017    472289    4334    3474    

2443

Оптовая торговля Розничная торговля Обмен с ГосИС Бухгалтер Оперативный учет 7.7 Бухгалтерский учет 7.7 1С:Бухгалтерия 7.7 1С:Комплексная 7.7 1С:Торговля и склад 7.7 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Россия Бухгалтерский учет Управленческий учет Акцизы Платные (руб)

Полностью автоматизированный обмен данными между конфигурациями 1С 7.7 и универсальным транспортным модулем (УТМ) ЕГАИС для всех видов деятельности (Опт, Розница, Производство, Импорт). Для организации обмена с ЕГАИС требуется минимальная доработка конфигураций (поддерживается 1С: "Торговля и склад ред. 9.2", 1С: "Бухгалтерия 7.7", 1С: "УСН 7.7", другие конфигурации по заказу, включая нетиповые). В данном программном продукте реализованы все технические требования ФСРАР по обмену с УТМ ЕГАИС (включая отправку чеков розничных продаж в ЕГАИС - требование с 01.07.16). Поддержана фиксация чеков ЕГАИС на онлайн-кассах (в соответствии с 54-ФЗ). Поддержана версия 3 документооборота и поштучный (помарочный) учет. Поддержан эксперимент Татарстана по маркировке нефасованного (кегового) пива.

3000 руб.

13.12.2015    136840    169    400    

146

Файловый обмен (TXT, XML, DBF), FTP Учет документов Распознавание документов и образов Бухгалтер Пользователь Платформа 1С v7.7 Платформа 1С v8.3 Платформа 1C v8.2 Конфигурации 1cv8 Конфигурации 1cv7 Россия Платные (руб)

Программный комплекс способный распознавать сотни листов за раз любых сканированных(фото) документов (УПД, ТОРГ12, СФ, паспорт и пр.) и загружать их в любую 1С (БП3.0, УТ, КА, УНФ, УПП, 1С7.7 ТиС, ЗУП3 и пр.), а также формировать архив сканированных документов.<br> Робот применяет до 5 способов распознавания. Максимальное качество загрузки документов из бесплатных OCR. Работает без Интернета.

10800 руб.

13.10.2022    8142    1    12    

9

Файловый обмен (TXT, XML, DBF), FTP Перенос данных 1C Программист Платформа 1С v8.3 Оперативный учет 7.7 1С:Торговля и склад 7.7 1С:Бухгалтерия 3.0 Бухгалтерский учет Управленческий учет Абонемент ($m)

Обработка и правила обмена данными для выгрузки документов и всех связанных с ними справочников из 1С7.7 ТиС 9.2 в 1С8.3 БП 3.0 через файл XML. В типовых конфигурациях уже есть такое решение. Это немного доработанные правила и сама обработка выгрузки, добавлена возможность устанавливать отбор по выгружаемым документам по Фирме, Контрагенту, Складу, Проекту, Автору, ЮрЛицу. А также это внешняя обработка, что даёт возможность адаптировать её под нетиповую ТиС. Обработка и правила тестировались на платформах: 1С: Предприятие 7.7 и 1С: Предприятие 8.3.18.1334. На типовых конфигурациях: «Торговля + склад», редакция 9.2 (7.70 1004) и «Бухгалтерия предприятия» редакция 3.0 (3.0.96.30).

1 стартмани

13.08.2021    8738    54    Kuzya_brаtsk    8    

11

Файловый обмен (TXT, XML, DBF), FTP ЭДО и ОФД Программист Бухгалтерский учет 7.7 1С:Бухгалтерия 7.7 1С:Торговля и склад 7.7 1С:Бухгалтерия 1.6 1С:Упрощенное налогообложение 7.7 Россия Бухгалтерский учет Абонемент ($m)

Обмениваемся УПД (УКД) с различными контрагентами через СБИС. А чтобы загрузить УПД (УКД) из 7.7 в Сбис, используем данную обработку, которая создает файл в формате XML, который можно импортировать в систему электронного документооборота. Для конфигурации "Бухгалтерский учет" (тестировалась на релизе 7.70.663) Для конфигурации "Упрощенная система налогообложения" ( тестировалась на релизе 7.70.305) Для конфигурации "Торговля и Склад 7.7" (тестировалась на релизе 7.70.1007)

1 стартмани

31.07.2021    15691    223    AndKovalchuk    50    

18
Оставьте свое сообщение