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

#1
7.7 / Re: ТиС, типовой код, вызывает...
Последний ответ от Злоп - Вчера в 18:55
"В типовых Бух и ЗиК 1Сники так с табуляцией не извращались."
В ТиС встречается такое кое-где, но не массово.
.
А я все ника кне определюсь, как "правильно" писать
Если А = 1 Тогда
или Если А=1 Тогда
#2
7.7 / Re: ТиС, типовой код, вызывает...
Последний ответ от Харлампий Дымба - Вчера в 14:35
Цитата: Злоп от Вчера в 14:05- тут как раз все понятно.
Возможно, вопросики скорее к коду
    ФирмаДляОстатковТМЦ = глФирмаДляОстатковТМЦ(Фирма);
мимо которого я пробежал - совсем неочевидно, что глФирмаДляОстатковТМЦ - возвращает, в основном, список значений, а значение конкретного элемента - только для "Контроль отрицательных остатков - По фирме". Назвали бы СписокФирмДляОстатковТМЦ - было бы понятнее.
Ну это так, попутные мелочи.

Там ещё был забавный момент, я в модуле документа Рализация нашел описание функции ФильтрЗаявок(), а вот её вызов нет. Потому что как обычно искал по "ФильтрЗаявок(", а в коде вызов функции выглядит буквально так:
ФильтрЗаявок        (          ТаблицаТМЦ, ТаблицаУслуг,        ВремЗаявки,    ВремЗаказыЗаявки);
В типовых Бух и ЗиК 1Сники так с табуляцией не извращались.
#3
7.7 / Re: ТиС, типовой код, вызывает...
Последний ответ от Злоп - Вчера в 14:15
Спасибо за пояснения.
Так примерно и думал, но грызли сомнения.
.
Дорабатывал погашение заявок реализациями строго по заявке-основанию, а не в рамках договора.
Получилось удачно, точечные исправления всего в фильтрзаявок, движение заявок и глСписаниеОстатковТМЦ.
.
Потому что все клиенты, которые встречались - мелкота, и совсем не приветствуют, когда реализация гасит кские-то другие заявки кроме заявки основания.
#4
7.7 / Re: ТиС, типовой код, вызывает...
Последний ответ от Злоп - Вчера в 14:05
По п.1 про список фирм и договор
- тут как раз все понятно.
Договор в рамках типовой никак к фирме не привязан (в своей конторе это пришлось допилить т.к. надо было).
При этом несколько фирм могут относиться к одному собственному юрлицу. И много всяких "холденгов" где одному и тому же клиенту могут грузить и от ооо и от ип, и в рамках упручета это один "канал сбыта", и делить на разные договора - излишне усложнять.
#5
7.7 / Re: ТиС, типовой код, вызывает...
Последний ответ от Харлампий Дымба - Вчера в 00:06
Чёто понаперемудрили там сильно.
Пара мелких замечаний для начала:
1. То что в УстановитьЗначениеФильтра() для Фирмы указан вариант отбора "2", а для Договора указан вариант отбора "1", очень интересный моментик, взял на заметку.
2. В документах ОтчетККМ и РеализацияРозница функция ФильтрЗаявок() описана также, но используется в таком виде
...
	ФильтрЗаявок(ТаблицаТМЦ, ТаблицаУслуг, ВремЗаявки, ВремЗаказыЗаявки);
	Если ИтогиАктуальны() = 0 Тогда
		ВремЗаявки.ВременныйРасчет();
		ВремЗаказыЗаявки.ВременныйРасчет();         
	КонецЕсли;                                      
...
Т.е сначала в ФильтрЗаявок() делаем ВременныйРасчет, потом после вызова делаем ВременныйРасчет ещё раз. Прикол в том, что из-за особенностей временного расчета на быстродействие это не влияет, но сам факт повторного вызова временного расчета - некрасиво.


Что касается твоего вопроса:
УстановитьЗначениеФильтра - действует, в частности, для 1.РассчитатьРегистрыНа (временного расчета) и для 2.ВыгрузитьИтоги() (получения таблицы итогов).
Так что смысла ставить фильтр по списку ТМЦ именно в ФильтрЗаявок() - нет, если временные итоги не рассчитываются.
Но для последующих ВыгрузитьИтоги() фильтр всё равно будет нужен - чтобы ТаблицаИтогов получилась поменьше. Поэтому в ФильтрЗаявок() для Регистр.ВремЗаявки ставят первые два фильтра Фирма и Договор. Фильтр по ТМЦ будет устанавливаться позже - в процедуре ДвижениеЗаявокПокупателя() по каждому отдельному ТМЦ при переборе в цикле. Там же пойдет перебор по заявке и будет установлен 4й и последений фильтр - по заявке. Чтобы при вызове процедуры ПогаситьЗаявки() можно было сделать
ВремЗаявки.ВыгрузитьИтоги(ТИЗаявки,1,1)
и в ТИЗаявки попали только итоги по всем четырем предварительно установленным измерениям Фирма.
Немножка перенаворочено, но в целом, в рамках логики.

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

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

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

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

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

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

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

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

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

ЗЫ FormEx версия 2.0.5.198
ЗЫЫ 1с77 sql, windows 10