Интернет-сервис имеет небольшую утилиту по генерации штрихкодов. Как сгенерировать картинку штрихкода для табличного документа в 1С Предприятие 8.2? Просто… ниже указан код, который позволит это сделать. Проверял работу на Windows 7.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
Функция ПолучитьКартинку(КодТовара,УникИдентТовара)Экспорт Попытка WinHttp = Новый COMОбъект("WinHttp.WinHttpRequest.5.1"); //WinHttpRequest Stream = Новый COMОбъект("ADODB.Stream"); //Stream (ADO) Адрес = "http://www.calc.ru/generator-shtrikh-kodov/download.php?code="+КодТовара+"&type=code128"; //Адрес = "http://barcode.tec-it.com/barcode.ashx?translate-esc=off&data="+КодТовара+"&code=ISBN13&unit=Fit&dpi=96&imagetype=Gif&rotation=0&color=000000&bgcolor=FFFFFF&qunit=Mm&quiet=0"; //Адрес = "https://www.barcodesinc.com/generator_files/image.php?code="+КодТовара+"&style=196&type=C128B&width=200&height=60&xres=2&font=3"; FileName = КаталогВременныхФайлов()+УникИдентТовара+".png"; WinHttp.Open("GET", Адрес, Ложь); WinHttp.Send(); Если WinHttp.Status = 200 Тогда Stream = Новый COMОбъект("ADODB.Stream"); Stream.Type = 1; Stream.Mode = 3; Stream.Open(); Stream.Write(WinHttp.ResponseBody); Stream.SaveToFile(FileName, 2); Stream.Close(); Stream = Неопределено; Возврат FileName; Иначе Сообщить("HTTP " + WinHttp.Status + " " + WinHttp.StatusText); Возврат FileName; КонецЕсли; Исключение Сообщить("Ошибка подключения к серверу! Проверьте интернет-соединение! |"+ОписаниеОшибки()); Возврат ""; КонецПопытки; КонецФункции |
В закомментированом коде хранится ссылка на подобные сервисы, но они там с приколами, а потому я не брал их во внимание. В результате работы функции мы получим путь к сохраненному файлу с готовой картинкой в формате PNG. Файл будет сохранен во временный каталог.
«COMОбъект(«ADODB.Stream»)» используется в качестве инструмента для сохранения файла как результата запроса на сервер сервиса генерации.
«УникИдентТовара» — уникальный идентификатор номенклатуры в базе данных необходим для присвоения уникального имени файла картинки штрихкода.
«КодТовара» — штрихкод в любом формате. У меня был EAN13.
Часто бывает ситуация, когда необходимо организовать осуществление подбора товара в табличную часть документа. Во всех стандартных документах этот механизм уже организован, а вот что касается созданных программистом при внедрении какой-либо новой разработки, то это уже труднее. Если программист добавил новый документ в типовую конфигурацию, то как правило в этом документе подбор пишется вручную, хотя это можно сделать и так как я внизу напишу, используя типовую обработку «Подбор номенклатуры».
Процедура вызова окна подбора:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
Процедура ДействиеПодбор() СписокВидовПодбора = Новый СписокЗначений; СписокВидовПодбора.Добавить(, "По справочнику"); СтруктураПараметровПодбора = Новый Структура; СтруктураПараметровПодбора.Вставить("Команда" , ""); СтруктураПараметровПодбора.Вставить("СписокВидовПодбора", СписокВидовПодбора); СтруктураПараметровПодбора.Вставить("Заголовок" , "Подбор товаров"); СтруктураПараметровПодбора.Вставить("ЕстьКоличество" , Истина); СтруктураПараметровПодбора.Вставить("ЕстьЦена" , Ложь); СтруктураПараметровПодбора.Вставить("ЕстьСерия" , Ложь); СтруктураПараметровПодбора.Вставить("Склад" , Неопределено); СтруктураПараметровПодбора.Вставить("ВалютаДокумента" , Валюта); СтруктураПараметровПодбора.Вставить("ВалютаЦены" , Валюта); // Открываем форму подбора. ФормаПодбора = Обработки.ПодборНоменклатуры.ПолучитьФорму("ОсновнаяФорма", ЭтаФорма, ЭтаФорма); ФормаПодбора.ОбработкаОбъект.СтруктураИсходныхПараметров = СтруктураПараметровПодбора; ФормаПодбора.Открыть(); КонецПроцедуры // ДействиеПодбор() |
В параметрах функции «ПолучитьФорму» разработчик указывает к какому объекту формы мы отправим результат выбора в форме подбора. В нашем случае результат мы отправляем всей родительской форме «ЭтаФорма», а вот в обработчике этой формы уже обрабатываем в зависимости от типа команды в структуре параметров отбора (СтруктураПараметровПодбора.Вставить(«Команда» , «»)). В нашем случае эта команда не обрабатывается из наличия только одной табличной части в документе, но вот если бы было более. тогда пришлось бы использовать параметр «Команда». 🙂
Читать далее…
Вот как можно сравнивать даты в 1С Предприятие 8.2.
|
Если ДатаНачала = '00010101000000' И ДатаОкончания = '00010101000000' Тогда ОписаниеПериода = НСтр( "ru='Период не установлен';uk='Період не встановлено'", КодЯзыкаПечать); КонецЕсли; |
Именно значение переменной «ДатаНачала» и является пустым значением: ‘00010101000000’. Особенность записи в том, что оно записывается в одинарных кавычках… Кстати, функция НСтр предназначена для вывода строки в нужной нам языковой раскладке, в зависимости от языка печатной формы…
Бывает ситуация, когда на сайт невозможно выгрузить большое количество товаров из 1С и сервер просто падает из-за перегрузки. Памяти не хватает и все такое… Для этого в 1С Предприятие есть удобная штука — разбивка обмена с сайтом на части с помощью планов обмена.
Изначально настройка выгрузки товаров на сайт выглядит следующим образом:
Окно настройки планов обмена с сайтом
Для корректной выгрузки товаров нам необходимо разбить большое количество товаров на малые части размеров примерно в 2000 штук. В моем случае в тестовой базе общее количество товаров было чуть больше чем 12000 товаров. Для этого необходимо сделать как минимум 5 узлов для обмена (12000/2000 = 6, но я беру 5 узлов). В теории можно разбивать на столько узлов, сколько сможет потянуть сайт при получении данных. Кнопкой добавить мы добавляем пару обменов, внимательно соблюдая уникальность кодов в узлах.
Читать далее…