Как заполнить автоматически поле менеджер в реализации на основании заказа
Подскажите пожалуйста. Как настроить, чтобы поле Менеджер в документе реализации созданный на основании документа Заказ клиента заполнялось автоматически из заказа.
Догадываюсь, что в обработке заполнения модуля объекта Реализации. Но как именно это реализовать не знаю
Управление торговлей, редакция 11 (11.4.10.57)
Догадываюсь, что в обработке заполнения модуля объекта Реализации. Но как именно это реализовать не знаю
Управление торговлей, редакция 11 (11.4.10.57)
По теме из базы знаний
- Всякие полезности
- Как печатать чеки с разными видами деятельности на онлайн-кассе
- Автоматизация торговой деятельности как путь к лидерству на рынке. Часть 2
- Как сдать экзамен 1С:Специалист по платформе?
- Интеграция Честный Знак и 1C: обмен и синхронизация для УТ11, УНФ, КА2, ERP, Розница: Расширение для работы с СУЗ, ГИС МТ, ЦРПТ
Найденные решения
(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, может есть у кого-то решение?
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот