При копировании документа "Заявка на доставку" меняется отображение формы элементов

1. user1304317 27.01.20 12:59 Сейчас в теме
Добрый день.
Конфигурация ERP 2.4.8.79.
Есть документ "Заявка на доставку".
На форме есть элемент - "ВидДоставки".
От него уже меняется расположение и отображение элементов формы.
Нужно сделать так, чтобы при копировании документа., отображение элементов формы проставлялось именно по виду доставки.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Teut_Vlad 183 27.01.20 13:03 Сейчас в теме
Что вы хотите, что бы мы написали код а вы его скопировали в режиме Конфигуратора, или выложить вам расширение?
Для первого случая, смотрите для элемента ВидДоставки при изменении, то что внутри этой процедуры, нужно скопировать в Модуль объекта ПриКопировании или в модуль формы ПриОткрытии с проверкой что это новый
Если Параметры.Ключ.Пустая() Тогда
//код из ПриИзменении ВидДоставки
КонецЕсли;
.
3. user1304317 27.01.20 13:05 Сейчас в теме
(2) Я разве просил написать код? К чему такие подколы? Мне всегда интересно узнать мнение экспертов или рекомендации.
А что касается события и процедур - я уже смотрел. Там есть процедура, которая отрабатывает видимость элементов формы.
4. Teut_Vlad 183 27.01.20 13:09 Сейчас в теме
(3) Это не подкол, решение имеет несколько вариантов с различными уровнями сложности, я уточнил,
мб не в совсем корректной форме)
Если база снята с поддержки, не трудно исправить данную проблему.
5. user1304317 27.01.20 13:22 Сейчас в теме
(4) База на поддержке с использованием редактирования.
&НаКлиенте
Процедура ВидДоставкиПриИзменении(Элемент)
	
	Если Объект.Распоряжения.Количество() 
		
		И Не ВидДоставкиЗоны = ПредопределенноеЗначение("Перечисление.СТ_ВидыДоставки.Переработка") Тогда
		
		Оповещение = Новый ОписаниеОповещения("ВидДоставкиПриИзмененииПодтвердить", ЭтотОбъект);
		ТекстВопроса = НСтр("ru = 'При изменении вида доставки табличная часть ""Распоряжения"" будет очищена. Продолжить?'");
		ПоказатьВопрос(Оповещение, ТекстВопроса, РежимДиалогаВопрос.ДаНет);
		Возврат;
	КонецЕсли;
	
	ВидДоставкиПриИзмененииНаКлиенте();
	НастроитьФормуНаСервере();
	
КонецПроцедуры

&НаКлиенте
Процедура ВидДоставкиПриИзмененииПодтвердить(Результат, ДопПараметры) Экспорт
	
	Если Результат = КодВозвратаДиалога.Да Тогда
		Объект.Распоряжения.Очистить();
		ВидДоставкиПриИзмененииНаКлиенте();
		НастроитьФормуНаСервере();
		РассчитатьИтоговыеПоказатели(ЭтаФорма);
	Иначе
		Объект.ВидДоставки = ВидДоставки;
	КонецЕсли;	
		
КонецПроцедуры

Показать
6. Teut_Vlad 183 27.01.20 13:25 Сейчас в теме
(5) Так, если в ПриОткрыти() в конце прописать
//Изменения+
Если Параметры.Ключ.Пустая() Тогда
    Если Объект.Распоряжения.Количество() 
        
        И Не ВидДоставкиЗоны = ПредопределенноеЗначение("Перечисление.СТ_ВидыДоставки.Переработка") Тогда
        
        Оповещение = Новый ОписаниеОповещения("ВидДоставкиПриИзмененииПодтвердить", ЭтотОбъект);
        ТекстВопроса = НСтр("ru = 'При изменении вида доставки табличная часть ""Распоряжения"" будет очищена. Продолжить?'");
        ПоказатьВопрос(Оповещение, ТекстВопроса, РежимДиалогаВопрос.ДаНет);
        Возврат;
    КонецЕсли;

 
    ВидДоставкиПриИзмененииНаКлиенте();
    НастроитьФормуНаСервере();
КонецЕсли;

//Изменения-
Показать

должно заработать
7. user1304317 27.01.20 13:58 Сейчас в теме
(6)
Если Параметры.Ключ.Пустая() Тогда
Если Объект.Распоряжения.Количество()

И Не ВидДоставкиЗоны = ПредопределенноеЗначение("Перечисление.СТ_ВидыДоставки.Переработка") Тогда

Оповещение = Новый ОписаниеОповещения("ВидДоставкиПриИзмененииПодтвердить", ЭтотОбъект);
ТекстВопроса = НСтр("ru = 'При изменении вида доставки табличная часть ""Распоряжения"" будет очищена. Продолжить?'");
ПоказатьВопрос(Оповещение, ТекстВопроса, РежимДиалогаВопрос.ДаНет);
Возврат;
КонецЕсли;
КонецЕсли;


Нет, не работает.
8. user1304317 27.01.20 13:59 Сейчас в теме
(6) При копировании также не корректно отображаются элементы формы.
9. user1304317 28.01.20 16:57 Сейчас в теме
(4) При копировании затирается реквизит "ЗонаДоставки", хотя сам реквизит остается заполненным.
Можете подсказать почему?
10. Teut_Vlad 183 28.01.20 17:08 Сейчас в теме
(9) он затирается на форме?
12. user1304317 29.01.20 09:14 Сейчас в теме
(10) В процедуру формы ПриОткрытии() добавил две процедуры :
	ЗонаДоставкиПриИзмененииНаСервере();
	НастроитьФормуНаСервере();


Отображение формы элементы стало приемлемым, но поле реквизита "АдресЗагрузки" не заполняется.
14. Teut_Vlad 183 29.01.20 10:26 Сейчас в теме
(12) вы заполняете объект на сервере, значит после заполнения форму нужно обновить
16. user1304317 29.01.20 11:11 Сейчас в теме
(14) Я правильно сделал или нет?
18. Teut_Vlad 183 29.01.20 11:15 Сейчас в теме
(16) посмотрите как заполняются реквизиты на форме
вроде это делается на клиенте
ЭтаФорма.Реквизит = "значение";
11. Teut_Vlad 183 28.01.20 17:12 Сейчас в теме
(9) Я смотрел последнюю версию Демо ERP
там нет Заявка на доставку, у вас самописный документ?
13. user1304317 29.01.20 09:14 Сейчас в теме
(11) Да, забыл вам это сказать.
15. Teut_Vlad 183 29.01.20 10:27 Сейчас в теме
(13) ну, вообразить код труднее чем посмотреть))
17. пользователь 29.01.20 11:11
Сообщение было скрыто модератором.
...
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот