powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / Много строчная часть в справочнике
25 сообщений из 58, страница 2 из 3
Много строчная часть в справочнике
    #36834168
SwiftBlack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поправил опечатки и получил:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Процедура ПоКнопкеНоменклатура()
	Если Модифицированность() =  0  Тогда
		ДокПарам = СоздатьОбъект("Документ.ПараметрыДоговора");
		Если ПустоеЗначение(СокрЛП(ПараметрыДоговора)) =  1  Тогда
			ДокПарам.Новый();
			ДокПарам.ДатаДок = ТекущаяДата();
			ДокПарам.Склад = глЗначениеПоУмолчанию("ОсновнойСклад");
			ДокПарам.ТипЦен = ТипЦен;
			ДокПарам.Кратность =  1 ;
			ДокПарам.ВалютаВзаиморасчетов = ВалютаВзаиморасчетов;
			ДокПарам.Курс = глКурсДляВалюты(ВалютаВзаиморасчетов,ДокПарам.ДатаДок);
			ДокПарам.СпрОснДоговоры = ТекущийЭлемент();
			ОткрытьФормуМодально(ДокПарам,, 0 );
		Иначе
			ДокПарам.НайтиДокумент(ПараметрыДоговора);
			ОткрытьФормуМодально(ДокПарам,, 0 );		
		КонецЕсли;
	Иначе
		Предупреждение("Договор должен быть записан",  60 );
	КонецЕсли;
	
	
КонецПроцедуры // ПоКнопкеНоменклатура()

Команда:
Код: plaintext
ОткрытьФормуМодально(ДокПарам,, 0 );

Просто отрабатывает как ";", не происходит ничего, просто переходит на следующий оператор, из за чего это может быть?
...
Рейтинг: 0 / 0
Много строчная часть в справочнике
    #36834272
Last1Cmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так открывать можно уже записаный документ а новый - через описатель "Документ.ХХХХХ" вместо ДокПарам в ОткрытьФормуМодально(ДокПарам,,0);
...
Рейтинг: 0 / 0
Много строчная часть в справочнике
    #36834284
SwiftBlack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Last1Cmenтак открывать можно уже записаный документ а новый - через описатель "Документ.ХХХХХ" вместо ДокПарам в ОткрытьФормуМодально(ДокПарам,,0);

Уже подправил:
Код: plaintext
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.
35.
36.
Процедура ПоКнопкеНоменклатура()
	Если Модифицированность() =  0  Тогда
		ДокПарам = СоздатьОбъект("Документ.ПараметрыДоговора");
		Если ПустоеЗначение(СокрЛП(ПараметрыДоговора)) =  1  Тогда
			ДокПарам.Новый();
			ДокПарам.ДатаДок = ТекущаяДата();
			ДокПарам.Склад = глЗначениеПоУмолчанию("ОсновнойСклад");
			ДокПарам.ТипЦен = ТипЦен;
			ДокПарам.Кратность =  1 ;
			ДокПарам.ВалютаВзаиморасчетов = ВалютаВзаиморасчетов;
			ДокПарам.Курс = глКурсДляВалюты(ВалютаВзаиморасчетов,ДокПарам.ДатаДок);
			ДокПарам.СпрОснДоговоры = ТекущийЭлемент();
			Попытка
				ДокПарам.Записать();
				ДокПарам.ТекущийЭлемент();
				Если ОткрытьФормуМодально(ДокПарам,, 0 ) =  0  Тогда
				    Предупреждение("Открыть список номенклатуры не удалось",  60 );
				КонецЕсли;
			Исключение
				Предупреждение("Неудалось создать список номенклатуры",  60 );
				Возврат;
			КонецПопытки;
		Иначе
			ДокПарам.НайтиДокумент(ПараметрыДоговора);
			Если ОткрытьФормуМодально(ДокПарам,, 0 ) =  0  Тогда
				Предупреждение("Открыть список номенклатуры не удалось",  60 );
				Возврат;
			КонецЕсли;
			
		КонецЕсли;
	Иначе
		Предупреждение("Договор должен быть записан",  60 );
	КонецЕсли;
	
	
КонецПроцедуры // ПоКнопкеНоменклатура()

Результат неизменен, ОткрытьФормуМодально = 0
...
Рейтинг: 0 / 0
Много строчная часть в справочнике
    #36834289
SwiftBlack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И так тоже не работает:
Код: plaintext
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.
Процедура ПоКнопкеНоменклатура()
	Если Модифицированность() =  0  Тогда
		ДокПарам = СоздатьОбъект("Документ.ПараметрыДоговора");
		Если ПустоеЗначение(СокрЛП(ПараметрыДоговора)) =  1  Тогда
			ДокПарам.Новый();
			ДокПарам.ДатаДок = ТекущаяДата();
			ДокПарам.Склад = глЗначениеПоУмолчанию("ОсновнойСклад");
			ДокПарам.ТипЦен = ТипЦен;
			ДокПарам.Кратность =  1 ;
			ДокПарам.ВалютаВзаиморасчетов = ВалютаВзаиморасчетов;
			ДокПарам.Курс = глКурсДляВалюты(ВалютаВзаиморасчетов,ДокПарам.ДатаДок);
			ДокПарам.СпрОснДоговоры = ТекущийЭлемент();
			Попытка
				ДокПарам.Записать();
				Если ОткрытьФормуМодально(ДокПарам.ТекущийЭлемент(),, 0 ) =  0  Тогда
				    Предупреждение("Открыть список номенклатуры не удалось",  60 );
				КонецЕсли;
			Исключение
				Предупреждение("Неудалось создать список номенклатуры",  60 );
				Возврат;
			КонецПопытки;
		Иначе
			ДокПарам.НайтиДокумент(ПараметрыДоговора);
			Если ОткрытьФормуМодально(ДокПарам.ТекущийЭлемент(),, 0 ) =  0  Тогда
				Предупреждение("Открыть список номенклатуры не удалось",  60 );
				Возврат;
			КонецЕсли;
			
		КонецЕсли;
	Иначе
		Предупреждение("Договор должен быть записан",  60 );
	КонецЕсли;
	
	
КонецПроцедуры // ПоКнопкеНоменклатура()

Не могу понять в чем ошибка, документ записан и ссылка на него.
...
Рейтинг: 0 / 0
Много строчная часть в справочнике
    #36834304
СвинТуз
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
как сказали?

Код: plaintext
Текущий.ДОКУмент()
...
Рейтинг: 0 / 0
Много строчная часть в справочнике
    #36834376
SwiftBlack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
СвинТузкак сказали?

Код: plaintext
Текущий.ДОКУмент()


Помог ТекущийДокумент(), но почему ОткрытьФормуМодально() возвращает 0?
...
Рейтинг: 0 / 0
Много строчная часть в справочнике
    #36834767
Last1Cmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
во превых в коде у вас ТекущийЭлемент а не ТекущийДокумент

во-вторых для того чтобы искать документ по реквизиту надо его сначала (реквизит) вывести в графу отбора журнала

в третьих вы ищете даже не по реквизиту а по объекту причем в переменной вместо объекта у вас текст а не ссылка на объект... уж опредлиться надо как искать (это касаемо той ветки где ищете документ который уже есть)
...
Рейтинг: 0 / 0
Много строчная часть в справочнике
    #36834771
Last1Cmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну откройте наконец справку контекстную по методам поиска и позиционирования

посмотрите отладчиком находит ли его вообще
...
Рейтинг: 0 / 0
Много строчная часть в справочнике
    #36835162
SwiftBlack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
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.
35.
36.
37.
38.
39.
40.
41.
42.
Процедура ПоКнопкеНоменклатура()
	Если Модифицированность() =  0  Тогда
		ДокПарам = СоздатьОбъект("Документ.ПараметрыДоговора");
		Если ПустоеЗначение(СокрЛП(ПараметрыДоговора)) =  1  Тогда
			ДокПарам.Новый();
			ДокПарам.ДатаДок = ТекущаяДата();
			ДокПарам.Склад = глЗначениеПоУмолчанию("ОсновнойСклад");
			ДокПарам.ТипЦен = ТипЦен;
			ДокПарам.Кратность =  1 ;
			ДокПарам.ВалютаВзаиморасчетов = ВалютаВзаиморасчетов;
			ДокПарам.Курс = глКурсДляВалюты(ВалютаВзаиморасчетов,ДокПарам.ДатаДок);
			ДокПарам.СпрОснДоговоры = ТекущийЭлемент();
			Попытка
				ДокПарам.Записать();
				ПараметрыДоговора = ДокПарам.ТекущийДокумент();
				Попытка
					Записать();
				Исключение
					Предупреждение("Неудалось записать изменения, " + РазделительСтрок + "попробуйте записать через 5 сек и повторить операцию",  60 );
					Возврат;
				КонецПопытки;
				Если ОткрытьФормуМодально(ДокПарам.ТекущийДокумент(),, 0 ) =  0  Тогда
				    Предупреждение("Открыть список номенклатуры не удалось",  60 );
				КонецЕсли;
			Исключение
				Предупреждение("Неудалось создать список номенклатуры",  60 );
				Возврат;
			КонецПопытки;
		Иначе
			ДокПарам.НайтиДокумент(ПараметрыДоговора);
			Если ОткрытьФормуМодально(ДокПарам.ТекущийДокумент(),, 0 ) =  0  Тогда
				Предупреждение("Открыть список номенклатуры не удалось",  60 );
				Возврат;
			КонецЕсли;
			
		КонецЕсли;
	Иначе
		Предупреждение("Договор должен быть записан",  60 );
	КонецЕсли;
	
	
КонецПроцедуры // ПоКнопкеНоменклатура()

Как то так, форма то открывается, но ОткрытьФормуМодально по закрытии формы возвращает 0.
...
Рейтинг: 0 / 0
Много строчная часть в справочнике
    #36835167
SwiftBlack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Last1Cmenну откройте наконец справку контекстную по методам поиска и позиционирования

посмотрите отладчиком находит ли его вообще

Посмотрел, и поправил еще вчера днем, про возвращение нуля писал уже после.
...
Рейтинг: 0 / 0
Много строчная часть в справочнике
    #36835671
Свинтуз
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а что должно возвращать то?
чем закрываете?
...
Рейтинг: 0 / 0
Много строчная часть в справочнике
    #36835687
SwiftBlack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем огромное спасибо за участие, особенно тем кто не поленился именно подсказать, да и за направления в помощь тоже отдельное спасибо.

От метода ОткрытьФормуМодально в итоге пришлось отказаться, толку мало от формы которая свой же подбор номенклатуры накрывает да еще и возвращает код ошибки по закрытии формы, зато банальное ОткрытьФорму прекрасно отрабатывает и возвращает код успеха.

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

Код: plaintext
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.
35.
36.
37.
38.
39.
40.
Процедура ПоКнопкеНоменклатура()
	Если Модифицированность() =  0  Тогда
		ДокПарам = СоздатьОбъект("Документ.ПараметрыДоговора");
		Если ПустоеЗначение(СокрЛП(ПараметрыДоговора)) =  1  Тогда
			ДокПарам.Новый();
			ДокПарам.ДатаДок = ТекущаяДата();
			ДокПарам.Склад = глЗначениеПоУмолчанию("ОсновнойСклад");
			ДокПарам.ТипЦен = ТипЦен;
			ДокПарам.Кратность =  1 ;
			ДокПарам.Фирма = глЗначениеПоУмолчанию("ОсновнаяФирма");
			ДокПарам.ВалютаВзаиморасчетов = ВалютаВзаиморасчетов;
			ДокПарам.Курс = глКурсДляВалюты(ВалютаВзаиморасчетов,ДокПарам.ДатаДок);
			ДокПарам.СпрОснДоговоры = ТекущийЭлемент();
			Попытка
				ДокПарам.Записать();
				ПараметрыДоговора = ДокПарам.ТекущийДокумент();
				Попытка
					Записать();
				Исключение
					Предупреждение("Неудалось записать изменения, " + РазделительСтрок + "попробуйте записать через 5 сек и повторить операцию",  60 );
					Возврат;
				КонецПопытки;
				Если ОткрытьФорму(ДокПарам.ТекущийДокумент(),, 0 ) =  0  Тогда
				    Предупреждение("Открыть список номенклатуры не удалось",  60 );
				КонецЕсли;
			Исключение
				Предупреждение("Не удалось создать список номенклатуры",  60 );
				Возврат;
			КонецПопытки;
		Иначе
			ДокПарам.НайтиДокумент(ПараметрыДоговора);
			Если ОткрытьФорму(ДокПарам.ТекущийДокумент(),, 0 ) =  0  Тогда
				Предупреждение("Не удалось открыть список номенклатуры",  60 );
				Возврат;
			КонецЕсли;
		КонецЕсли;
	Иначе
		Предупреждение("Договор должен быть записан",  60 );
	КонецЕсли;
КонецПроцедуры // ПоКнопкеНоменклатура()

P.S. Незнание 1С не говорит о квалифицированности программиста, Delphi, PHP, ASM, и т.д.,настройка серверов novell(файл-сервер), linux(файл-сервер, шлюзы, веб, openvpn) (red-hat based, debian based) включая сервера под 1С на linux, от программирования на 1С отнекивался 5 лет, жизнь заставила!
...
Рейтинг: 0 / 0
Много строчная часть в справочнике
    #36835691
Last1Cmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как то так, форма то открывается, но ОткрытьФормуМодально по закрытии формы возвращает 0.

а что она должна возвратить ? возврат идет на этапе открытия... открыл - "1" не открыл - "0"

ОткрытьФорму(<?>,,)
Синтаксис:
ОткрытьФорму(<Документ>,<КонтекстФормы>,<РежимПросмотра>)
Назначение:
Открывает визуальную форму существующего документа или элемента/группы справочника.
Возвращает: 1 - если действие выполнено, 0 - иначе.
Параметры:
<Документ> - выражение со значением типа 'документ';
<КонтекстФормы> - имя переменной, куда можно задать значение любого типа для передачи в открываемую форму. Данное значение будет доступно в открытой форме как атрибут Форма.Параметр. После исполнения данного метода система вернет в данную переменную контекст открытой формы (необязателен);
<РежимПросмотра> - необязательный параметр. Числовое выражение: 1 - открыть форму в режиме только просмотра; 0 - открыть форму в режиме редактирования; -1 (минус единица) - в этом случае используется вариант, предусмотренный текущим значением параметра ''Режим открытия объектов'', установленным пользователем интерактивно.
Замечание:
Пока форма открыта, тип значения параметра <КонтекстФормы> равен 100, когда закрыта - 0.
...
Рейтинг: 0 / 0
Много строчная часть в справочнике
    #36835694
SwiftBlack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Свинтуза что должно возвращать то?
чем закрываете?
Хотелось бы получить признак успеха открытия формы, в справке и в книжке написано "1" дадут, а на выходе всегда 0, а не важно чем закрываю, форма открыта, а возвращаемое значение говорит что нет.
...
Рейтинг: 0 / 0
Много строчная часть в справочнике
    #36835706
SwiftBlack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Last1Cmen
а что она должна возвратить ? возврат идет на этапе открытия... открыл - "1" не открыл - "0"


А вот всегда "0" возвращает, я уже и в форме поковырялся, а при закрытии "0" и без вариантов.
Не суть важно заработала и вполне приемлемо, всеравно в 1С какоето странное понятие модальности получается форма в top это понятно, но зачем же даже из нее запущенные процессы и формы в фон сливать, этого я если честно не допонял.
...
Рейтинг: 0 / 0
Много строчная часть в справочнике
    #36835707
Last1Cmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SwiftBlackСвинтуза что должно возвращать то?
чем закрываете?
Хотелось бы получить признак успеха открытия формы, в справке и в книжке написано "1" дадут, а на выходе всегда 0, а не важно чем закрываю, форма открыта, а возвращаемое значение говорит что нет.


это особености модального режим... т.е. т.к. режим модальный (все остальное не локального контекста открытой формы блокируется) то пока не закроем форму ничего по коду вызова происходить не будет
...
Рейтинг: 0 / 0
Много строчная часть в справочнике
    #36835719
SwiftBlack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Last1Cmen
это особености модального режим... т.е. т.к. режим модальный (все остальное не локального контекста открытой формы блокируется) то пока не закроем форму ничего по коду вызова происходить не будет
Вопрос, я из модальной формы вызываю подбор, это дочерний процесс который тоже должен обладать признаками модальности формы и быть видимым, но он падает в фон, модальное окно остается на первом плане, это нормальное для 1С 7.7 явление?
...
Рейтинг: 0 / 0
Много строчная часть в справочнике
    #36835769
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это фича... там проблем в 7.7 с интерфейсом хватает - не зря же АЛьФ "FormEx" делал
...
Рейтинг: 0 / 0
Много строчная часть в справочнике
    #36835938
Last1Cmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господин ПЖэто фича... там проблем в 7.7 с интерфейсом хватает - не зря же АЛьФ "FormEx" делал



первое правило франча - никогда не употребляйте слова "баги" а вместо них используйте "особености" и "возможности"
...
Рейтинг: 0 / 0
Много строчная часть в справочнике
    #36835962
SwiftBlack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Учту на будущее!
...
Рейтинг: 0 / 0
Много строчная часть в справочнике
    #36836019
СвинТуз
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вы поаккуратнее со словами
слово "подбор" имеет смысловую нагрузку в 1с
и свою обработку
...
Рейтинг: 0 / 0
Много строчная часть в справочнике
    #36836042
СвинТуз
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
но зачем же даже из нее запущенные процессы и формы в фон сливать

многопоточные приложения? ))
...
Рейтинг: 0 / 0
Много строчная часть в справочнике
    #36836099
SwiftBlack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
СвинТузВы поаккуратнее со словами
слово "подбор" имеет смысловую нагрузку в 1с
и свою обработку

Именно с этой смысловой нагрузкой оно и использовано, по нему происходит подбор номенклатуры.
...
Рейтинг: 0 / 0
Много строчная часть в справочнике
    #36836102
SwiftBlack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
СвинТуз
Код: plaintext
но зачем же даже из нее запущенные процессы и формы в фон сливать

многопоточные приложения? ))

если честно не понял вопроса...
...
Рейтинг: 0 / 0
Много строчная часть в справочнике
    #36836192
Last1Cmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SwiftBlackСвинТузВы поаккуратнее со словами
слово "подбор" имеет смысловую нагрузку в 1с
и свою обработку

Именно с этой смысловой нагрузкой оно и использовано, по нему происходит подбор номенклатуры.

подбор это подбор со своим обработчиком и подбор откроется точно в таком же модальном окошке... любое что вызывается из формы в модальном режиме тоже будет модальным
...
Рейтинг: 0 / 0
25 сообщений из 58, страница 2 из 3
Форумы / [игнор отключен] [закрыт для гостей] / Много строчная часть в справочнике
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]