Как заполнить автоматически поле менеджер в реализации на основании заказа
Подскажите пожалуйста. Как настроить, чтобы поле Менеджер в документе реализации созданный на основании документа Заказ клиента заполнялось автоматически из заказа.
Догадываюсь, что в обработке заполнения модуля объекта Реализации. Но как именно это реализовать не знаю
Управление торговлей, редакция 11 (11.4.10.57)
Догадываюсь, что в обработке заполнения модуля объекта Реализации. Но как именно это реализовать не знаю
Управление торговлей, редакция 11 (11.4.10.57)
По теме из базы знаний
Найденные решения
(14)Вот код для процедуры ПослеОбработкаЗаполнения или вставляйте в модуль перед КонецПроцедуры
работает
Если ТипДанныхЗаполнения = Тип("Структура") Тогда
Если ДанныеЗаполнения.Свойство("ДокументОснование")
И (ТипЗнч(ДанныеЗаполнения.ДокументОснование) = Тип("ДокументСсылка.ЗаказКлиента")) тогда
Менеджер = ДанныеЗаполнения.ДокументОснование.Менеджер;
КонецЕсли;
ИначеЕсли ТипДанныхЗаполнения = Тип("ДокументСсылка.ЗаказКлиента") тогда
Менеджер = ДанныеЗаполнения.ДокументОснование.Менеджер;
КонецЕсли;
Показатьработает
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Зачем такие танцы с бубнами и программированием?
Поле "менеджер" в заказе клиента и в реализации заполняется из трех мест:
1. Поле "ответственный менеджер" в карточке клиента.
2. Поле "ответственный менеджер" из соглашения с клиентом.
3. Поле "ответственный менеджер" из договора с контрагентом.
В какой последовательности идет проверка точно не скажу, но вероятнее всего - договор, соглашение, клиент.
Поле "менеджер" в заказе клиента и в реализации заполняется из трех мест:
1. Поле "ответственный менеджер" в карточке клиента.
2. Поле "ответственный менеджер" из соглашения с клиентом.
3. Поле "ответственный менеджер" из договора с контрагентом.
В какой последовательности идет проверка точно не скажу, но вероятнее всего - договор, соглашение, клиент.
В модуле объекта документа реализации есть Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
В коде этой процедуры есть блок:
Вот стало быть нам надо модифицировать код процедуры "ЗаполнитьДокументНаОснованииЗаказаКлиента"
Где то в области этой процедуры которая готовит запросом и заполняет шапку документа реализации добавить заполнение менеджера
Запрос там приблизительно такой
Добавляем
Тогда вот эта строка: // Заполнение шапки
Установит менеджера из заказа
а в процедуре этого же модуля: Процедура ИнициализироватьДокумент(ДанныеЗаполнения = Неопределено)
Закомментировать:
Примеры коды приведены по конфигурации 1С:ERP Управление предприятием 2 (2.4.11.43) но я думаю что эти области кода в УТ 11.4 - подобны
В коде этой процедуры есть блок:
Если ТипДанныхЗаполнения = Тип("Структура") Тогда
...
ИначеЕсли ТипДанныхЗаполнения = Тип("ДокументСсылка.ЗаказКлиента") Или
ТипДанныхЗаполнения = Тип("ДокументСсылка.ЗаявкаНаВозвратТоваровОтКлиента") Тогда
Дата = ЗаказыСервер.ПолучитьМинимальнуюДатуОтгрузкиЗаказа(ДанныеЗаполнения);
ЗаполнитьДокументНаОснованииЗаказаКлиента(ДанныеЗаполнения, СкладОтгрузки, ВариантОформления);
ЗаполненНаОснованииДокумента = Истина;
...
ПоказатьВот стало быть нам надо модифицировать код процедуры "ЗаполнитьДокументНаОснованииЗаказаКлиента"
Где то в области этой процедуры которая готовит запросом и заполняет шапку документа реализации добавить заполнение менеджера
Запрос там приблизительно такой
Если ТипОснования = Тип("ДокументСсылка.ЗаказКлиента") Тогда
Запрос = Новый Запрос("
|ВЫБРАТЬ
| ЗаказКлиента.Ссылка КАК ЗаказКлиента,
| ЗаказКлиента.Партнер КАК Партнер,
| ЗаказКлиента.Контрагент КАК Контрагент,
| ЗаказКлиента.КонтактноеЛицо КАК КонтактноеЛицо,
| ЗаказКлиента.Договор КАК Договор,
| ЗаказКлиента.Организация КАК Организация,
| ЗаказКлиента.ФормаОплаты КАК ФормаОплаты,
| ЗаказКлиента.Соглашение КАК Соглашение,
| ЗаказКлиента.КартаЛояльности КАК КартаЛояльности,
| ЗаказКлиента.Сделка КАК Сделка,
| ЗаказКлиента.Валюта КАК Валюта,
| ЗаказКлиента.Валюта КАК ВалютаВзаиморасчетов,
| ЗаказКлиента.ГрафикОплаты КАК ГрафикОплаты,
| ЗаказКлиента.Подразделение КАК Подразделение,
| ЗаказКлиента.ДатаОтгрузки КАК ДатаОтгрузки,
ПоказатьДобавляем
| ЗаказКлиента.Менеджер КАК Менеджер,
...
Тогда вот эта строка: // Заполнение шапки
ЗаполнитьЗначенияСвойств(ЭтотОбъект, РеквизитыЗаказа);
Установит менеджера из заказа
а в процедуре этого же модуля: Процедура ИнициализироватьДокумент(ДанныеЗаполнения = Неопределено)
Закомментировать:
Менеджер = Пользователи.ТекущийПользователь();
Примеры коды приведены по конфигурации 1С:ERP Управление предприятием 2 (2.4.11.43) но я думаю что эти области кода в УТ 11.4 - подобны
Зачем так сложно, да ещё и с порчей типового кода? В конце процедуры обработказаполнения ставим
Ответственный=то что надо,
А ещё лучше в расширении добавить фунцию ПослеОбработкаЗаполнения и прописать эту строчку там
Ответственный=то что надо,
А ещё лучше в расширении добавить фунцию ПослеОбработкаЗаполнения и прописать эту строчку там
(3)Практика показывает что для ненагруженных систем, для небольших клиентов оптимальнее вносить изменения в конфигурацию что бы там кто не советовал. Потому что обновления управленческой учетной системы случаются в целом раз в несколько лет. Геморроя с расширениями при переходе с платформы на платформу тоже достаточно встречается. Но даже и обновление конфы обвешенной расширениями задача нетривиальная. Сравнимая с обновлением доработанной если уметь это делать конечно.
как вариант, подменять менеджера при создании на сервере
расширение во вложении
расширение во вложении
&НаСервере
Процедура Расш1_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
Если Параметры.Свойство("Основание") и Параметры.Основание.Свойство("ДокументОснование") и типзнч(Параметры.Основание.ДокументОснование) = тип("ДокументСсылка.ЗаказКлиента") тогда
объект.Менеджер = Параметры.Основание.ДокументОснование.Менеджер;
КонецЕсли;
КонецПроцедуры
Прикрепленные файлы:
АдаптацияУТ.cfe
Спасибо огромное! Я думал в модуля объекта нужно, а не в модуле формы.
Вот что я пробовал
Вот что я пробовал
&После("ОбработкаЗаполнения")
Процедура Расш1_ОбработкаЗаполнения(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка)
Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ЗаказКлиента") Тогда
Менеджер = ДанныеЗаполнения.Менеджер;
КонецЕсли;
КонецПроцедуры
Показать
(13) Не работает.. а я ничего не упускаю? только проверку на структуру?
&После("ОбработкаЗаполнения")
Процедура од_ОбработкаЗаполнения(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка)
ТипДанныхЗаполнения = ТипЗнч(ДанныеЗаполнения);
Если ТипДанныхЗаполнения = Тип("Структура") Тогда
Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ЗаказКлиента") Тогда
Менеджер = ДанныеЗаполнения.Менеджер;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Показать
(14)Вот код для процедуры ПослеОбработкаЗаполнения или вставляйте в модуль перед КонецПроцедуры
работает
Если ТипДанныхЗаполнения = Тип("Структура") Тогда
Если ДанныеЗаполнения.Свойство("ДокументОснование")
И (ТипЗнч(ДанныеЗаполнения.ДокументОснование) = Тип("ДокументСсылка.ЗаказКлиента")) тогда
Менеджер = ДанныеЗаполнения.ДокументОснование.Менеджер;
КонецЕсли;
ИначеЕсли ТипДанныхЗаполнения = Тип("ДокументСсылка.ЗаказКлиента") тогда
Менеджер = ДанныеЗаполнения.ДокументОснование.Менеджер;
КонецЕсли;
Показатьработает
(15) В модуле объекта вписал, ошибок синтаксиса нет, но работать не хочет..
&После("ОбработкаЗаполнения")
Процедура од_ОбработкаЗаполнения(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка)
ТипДанныхЗаполнения = ТипЗнч(ДанныеЗаполнения);
Если ТипДанныхЗаполнения = Тип("Структура") Тогда
Если ДанныеЗаполнения.Свойство("ДокументОснование")
И (ТипЗнч(ДанныеЗаполнения.ДокументОснование) = Тип("ДокументСсылка.ЗаказКлиента")) тогда
Менеджер = ДанныеЗаполнения.ДокументОснование.Менеджер;
КонецЕсли;
ИначеЕсли ТипДанныхЗаполнения = Тип("ДокументСсылка.ЗаказКлиента") тогда
Менеджер = ДанныеЗаполнения.ДокументОснование.Менеджер;
КонецЕсли;
КонецПроцедуры
Показать
Тема актуальная для версии (11.5.13.104) у меня в реализации в поле менеджер берет менеджера из Клиента (поле Основной менеджер)
Пробовал Вашу адаптацию и вписывать в нее код, ошибок нет, менеджера в реализации так и не меняет, уже и не знаю куда капать. Безопасный режим галку снимал.
Пробовал Вашу адаптацию и вписывать в нее код, ошибок нет, менеджера в реализации так и не меняет, уже и не знаю куда капать. Безопасный режим галку снимал.
(18)
Приветствую Вас, проблема актуальна для УТ 11.5 случайно не пробовал переделывать ?
Делаю все как описано, но ничего не происходит, если пользоваться вашим кодом. Галочка снята
Пока решил проблему так:
Но тут чуть чуть не правильно, т.к. менеджер берется из строки Автор (т.е. кто создает документ, тот встает в поле менеджер)
Приветствую Вас, проблема актуальна для УТ 11.5 случайно не пробовал переделывать ?
Делаю все как описано, но ничего не происходит, если пользоваться вашим кодом. Галочка снята
&После("ОбработкаЗаполнения")
Процедура од_ОбработкаЗаполнения(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка)
ТипДанныхЗаполнения = ТипЗнч(ДанныеЗаполнения);
Если ТипДанныхЗаполнения = Тип("Структура") Тогда
Если ДанныеЗаполнения.Свойство("ДокументОснование")
И (ТипЗнч(ДанныеЗаполнения.ДокументОснование) = Тип("ДокументСсылка.ЗаказКлиента")) тогда
Менеджер = ДанныеЗаполнения.ДокументОснование.Менеджер;
КонецЕсли;
ИначеЕсли ТипДанныхЗаполнения = Тип("ДокументСсылка.ЗаказКлиента") тогда
Менеджер = ДанныеЗаполнения.ДокументОснование.Менеджер;
КонецЕсли;
КонецПроцедуры
ПоказатьПока решил проблему так:
Менеджер = справочники.Пользователи.НайтиПоНаименованию(ПараметрыСеанса.ТекущийПользователь);
Но тут чуть чуть не правильно, т.к. менеджер берется из строки Автор (т.е. кто создает документ, тот встает в поле менеджер)
В УТ 11.5.16.107 в Расширении
&После("ОбработкаЗаполнения")
Процедура СД_ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
ТипДанныхЗаполнения = ТипЗнч(ДанныеЗаполнения);
Если ДанныеЗаполнения.Свойство("ДокументОснование") И (ТипЗнч(ДанныеЗаполнения.ДокументОснование[0]) = Тип("ДокументСсылка.ЗаказКлиента")) Тогда
Если ТипДанныхЗаполнения = Тип("Структура") тогда
ЭтотОбъект.Менеджер = ДанныеЗаполнения.ДокументОснование[0].Менеджер;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Показать
(22)
добрый день добавила в расширение в форму документа все равно не меняется менеджер, версия 11.5.17.143, может есть у кого-то решение?
&После("ОбработкаЗаполнения")
Процедура СД_ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
ТипДанныхЗаполнения = ТипЗнч(ДанныеЗаполнения);
Если ДанныеЗаполнения.Свойство("ДокументОснование") И (ТипЗнч(ДанныеЗаполнения.ДокументОснование[0]) = Тип("ДокументСсылка.ЗаказКлиента")) Тогда
Если ТипДанныхЗаполнения = Тип("Структура") тогда
ЭтотОбъект.Менеджер = ДанныеЗаполнения.ДокументОснование[0].Менеджер;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Процедура СД_ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
ТипДанныхЗаполнения = ТипЗнч(ДанныеЗаполнения);
Если ДанныеЗаполнения.Свойство("ДокументОснование") И (ТипЗнч(ДанныеЗаполнения.ДокументОснование[0]) = Тип("ДокументСсылка.ЗаказКлиента")) Тогда
Если ТипДанныхЗаполнения = Тип("Структура") тогда
ЭтотОбъект.Менеджер = ДанныеЗаполнения.ДокументОснование[0].Менеджер;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
добрый день добавила в расширение в форму документа все равно не меняется менеджер, версия 11.5.17.143, может есть у кого-то решение?
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот