Последние сообщения

#11
7.7 / ТиС, типовой код, вызывает воп...
Последний ответ от Злоп - 15 мая 2026, 15:52
Вот берем типовую ТиС, Док.Реализация.МодульДокумента
И встречаем вот такой код

Процедура ФильтрЗаявок(ТаблицаТМЦ, ТаблицаУслуг, ВремЗаявки, ВремЗаказыЗаявки)
	
	Перем ТаблицаНоменклатуры;
	
	ВремЗаявки.УстановитьЗначениеФильтра("Фирма",ФирмаДляОстатковТМЦ, 2);
	ВремЗаявки.УстановитьЗначениеФильтра("ДоговорПокупателя", Договор,1);
	
	Если ИтогиАктуальны()=0 Тогда
		ТаблицаТМЦ.Выгрузить(ТаблицаНоменклатуры);
		Если ТаблицаУслуг.КоличествоСтрок()>0 Тогда
			БылоСтрок = ТаблицаНоменклатуры.КоличествоСтрок();
			ТаблицаНоменклатуры.КоличествоСтрок(БылоСтрок+ТаблицаУслуг.КоличествоСтрок());
			ТаблицаНоменклатуры.Заполнить(ТаблицаУслуг,БылоСтрок+1,ТаблицаНоменклатуры.КоличествоСтрок());
		КонецЕсли;
	
		СписокТМЦ = СоздатьОбъект("СписокЗначений");
	    ТаблицаНоменклатуры.Выгрузить(СписокТМЦ,,,"Номенклатура");
    	ВремЗаявки.      УстановитьЗначениеФильтра("Номенклатура",СписокТМЦ,2);
        ВремЗаказыЗаявки.УстановитьЗначениеФильтра("Номенклатура",СписокТМЦ,2);
		
		ВремЗаявки.      ВременныйРасчет();
		ВремЗаказыЗаявки.ВременныйРасчет();
	КонецЕсли;
	
КонецПроцедуры // ФильтрЗаявок()

Возникает вопрос: почему для временного расчета фильтр по списку номенклатуры устанавливается, а для ТА - нет...? Обоснований/предположений этому не нашел. Почему не наложить фильтр по номенклатуре и на итоги для ТА?

Аналогичный подход и здесь:

Процедура глФильтрОстатковТМЦ(Конт,ТаблНоменклатуры, СписокПараметров, ВремОстаткиТМЦ, ВремРезервыТМЦ = "") Экспорт
                                      
	ФирмаДляОстатковТМЦ = СписокПараметров.Получить("ФирмаДляОстатковТМЦ");                        
	
	ВремОстаткиТМЦ.    УстановитьЗначениеФильтра("Фирма"       ,ФирмаДляОстатковТМЦ,2); 
	Если (ТипЗначенияСтр(ВремРезервыТМЦ) = "Регистр") Тогда
		ВремРезервыТМЦ.УстановитьЗначениеФильтра("Фирма"       ,ФирмаДляОстатковТМЦ,2); 
    КонецЕсли;
	
	Если Конт.ИтогиАктуальны()=0 Тогда
		// подготовка фильтров
		СписокТМЦ		= СоздатьОбъект("СписокЗначений");
		ТаблНоменклатуры.Выгрузить(СписокТМЦ,,,"Номенклатура");
	
		// установка фильтров
		ВремОстаткиТМЦ.УстановитьЗначениеФильтра("Номенклатура",СписокТМЦ,2);
        ВремОстаткиТМЦ.ВременныйРасчет();
		
		Если (ТипЗначенияСтр(ВремРезервыТМЦ) = "Регистр") Тогда
			// установка фильтров
			ВремРезервыТМЦ.УстановитьЗначениеФильтра("Номенклатура",СписокТМЦ,2);
        	ВремРезервыТМЦ.ВременныйРасчет();
		КонецЕсли;
	КонецЕсли;
	
КонецПроцедуры // ФильтрОстатковТМЦ()

Что я не понимаю? Какие тонкости не волоку?
#12
Дружественные проекты / Re: DialMail новая версия
Последний ответ от mic22 - 04 мая 2026, 23:42
Отправил в почту несколько косячных писем, посмотрите пожалуйста
#13
FormEx / Re: FormEx и enter
Последний ответ от Ветер в поле - 02 мая 2026, 20:43
Я с таким поведением борюсь выстраивая вручную порядок реквизитов. Добавишь иногда реквизит на форму и горячие клавиши прекращают работу. А вот какой порядок нужно выстроить, тут не подскажу, его надо подбирать по месту. Чтобы Enter работал в списках, надо чтобы активен был сам список. Если активна какая-нибудь кнопка, то на Enter будет реагировать именно она, а не выбор элемента.
#14
FormEx / Re: FormEx и enter
Последний ответ от werzx - 02 мая 2026, 18:28
Забыл добавить вопрос (ну или он не очевиден из описания), как сделать так, чтобы события обрабатывались нормально, enter был enter.

На Fx кнопки все отрабатывается нормально, но забрав с собой enter :(
#15
FormEx / FormEx и enter
Последний ответ от werzx - 01 мая 2026, 20:34
Как только подключаешь обработку, все enter не работает по стандартной схеме. Те ни в справочниках, ни в диалогах enter не отрабатывается именно как enter, а вообще не работает. ctlr+enter через раз.

Причем для теста, намеренно, форма даже не загружается до конца, только выполняется ЗагрузкаВнешнейКомпоненты, чтобы исключить влияние ПриНажатииКнопкиКлавиатуры (хотя насколько я помню, процедура уже активна сильно ранее, при старте dll уже события ловятся)

Помнится как то давно была такая проблема, но за давностью лет все уже забылось ;(

ЗЫ FormEx версия 2.0.5.198
ЗЫЫ 1с77 sql, windows 10
#16
FormEx / Re: DataMatrix GS1
Последний ответ от cr - 01 мая 2026, 06:44
Не понимаю зачем нужна непонятная приблуда, если есть
Цитата: PavlovDL от 28 апреля 2026, 15:33инструкции к библиотеке ZINT
?
Печать ШК любых.ert
#17
FormEx / Re: DataMatrix GS1
Последний ответ от MWW_Ruza - 30 апреля 2026, 09:57
Все работает, и ШК марок читается и проверяется в том числе и приложением от ЧЗ, все символы на месте.

Обработка во вложении. Там лишнее - печать всякой другой инфы по марке, из дополнительного файла описаний, структурой строками GTIN который в марке, и через пробел, что нужно напечатать.
Но, в принципе, если марка на один GTIN, то, можно это не испльзовать, там галка есть, и ввести описание в отдельное поле.
С другой стороны - да пофик. Главное принцип печати ШК DM GS1 там есть и работает.
Обработка печати марок из ЧЗ
#18
FormEx / Re: DataMatrix GS1
Последний ответ от PavlovDL - 28 апреля 2026, 15:33
Решение найдено.
При таком значении штрих-кода:

ЗначениеШтрихкода="[01]04693257680055[21]540YkK:wYMCRKCU:n*.i[91]FFD0[92]dGVzdAX8V8JbgOcia9VWiJjRLv1wlzxl+Ob/EnBEUI8=";

И такими параметрами метода:

Сервис.НарисоватьШтрихкод(Картинка,71,ЗначениеШтрихкода,0,,2,,512);

Получили нужный результат:

Признак символики GS1 DataMatrix:
Присутствует
Штрихкод:
010469325768005521540YkK:wYMCRKCU:n*.i<GS>91FFD0<GS>92dGVzdAX8V8JbgOcia9VWiJjRLv1wlzxl+Ob/EnBEUI8=
Длина: 92 символа.
Содержимое штрихкода:
(01) 04693257680055 [14]
(21) 540YkK:wYMCRKCU:n*.i [20]
(91) FFD0 [4]
(92) dGVzdAX8V8JbgOcia9VWiJjRLv1wlzxl+Ob/EnBEUI8= [44]

т.е. лидирующий символ FNC1, а разделители групп GS

Все дело в параметре <output_options> - в значении 512 или <GS1_GS_SEPARATOR> он заменяет разделители FNC1 на GS

Синтаксис:
НарисоватьШтрихкод(<Картинка>, <ТипКода>, <ЗначениеКода>, <ПрятатьТест>,<eci>,<input_mode>,<УголПоворота>,<output_options>)

В мануале к FormEx этот параметр не описан, но в инструкции к библиотеке ZINT он есть

FormEx (2.0.5.198):
   BARCODE_NO_ASCII   1
   BARCODE_BIND      2
   BARCODE_BOX          4
   BARCODE_STDOUT      8
   READER_INIT          16
   SMALL_TEXT          32
   BOLD_TEXT           64
   CMYK_COLOUR         128
   BARCODE_DOTTY_MODE  256
ZINT:
--------------------------------------------------------------------------------
Value               |  Effect
--------------------------------------------------------------------------------
0                   |  No options selected.
BARCODE_BIND        |  Boundary bars above and below the symbol and between
                    |     rows if stacking multiple symbols. [2]
BARCODE_BOX         |  Add a box surrounding the symbol and whitespace. [2]
BARCODE_STDOUT      |  Output the file to stdout.
READER_INIT         |  Add a reader initialisation symbol to the data before
                    |     encoding.
SMALL_TEXT          |  Use a smaller font for the human readable text.
BOLD_TEXT           |  Embolden the human readable text.
CMYK_COLOUR         |  Select the CMYK colour space option for encapsulated
                    |      PostScript files.
BARCODE_DOTTY_MODE  |  Plot a matrix symbol using dots rather than squares.
GS1_GS_SEPARATOR    |  Use GS instead FNC1 as GS1 separator (Data Matrix)

Надеюсь будет полезно для маркировки РЭП с 01.05.2026
Большое спасибо всем откликнувшимся
#19
FormEx / Re: DataMatrix GS1
Последний ответ от АЛьФ - 28 апреля 2026, 13:34
Продублирую сюда свой ответ из переписки.
По идее надо бы погонять Zint в отдельном виде с разными параметрами, добиться нужного результата и потом уже попробовать с теми же параметрами нарисовать в FormEx.
Вот если в этом случае не получится (например, нужных параметров в FormEx не выведено), тогда я подключусь и добавлю нужное в компоненту.
#20
FormEx / Re: DataMatrix GS1
Последний ответ от Злоп - 28 апреля 2026, 12:07
хотя... года два назад печатал для производителя одежды...
но код уже не помню где