Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 18:29

Необходима подсказка для доработки УТ11.4.10

Автор Alexbis, 19 дек 2019, 16:22

0 Пользователей и 1 гость просматривают эту тему.

Alexbis

Возникла необходимость модификации Формы документа ЗаказКлиента в УТ11.4.10, при этом хочется указывая Хозяйственную операцию "Передача на комиссию" иметь возможность давать скидку клиентам, код я подправил, сейчас форма дает проставлять скидки, но, при попытке сохранения документа - значение скидки не сохраняется, соответственно при загрузке - видно что сумма меньше, но самой скидки и суммы по ней нет, не могу найти как сохранить эти значения ТЧ документа, нужна помощь...

antoneus

Скидка - это реквизит формы, небось?

Alexbis

нет, реквизит табличной части документа, что-то типа товары.ручнаяскидка, значение не сохраняется, почемуто всегда 0 сохраняет, ставишь в форме хозоперация - "реализация клиенту" - сохраняет нормальное значение, а мне надо чтобы при "передаче на комиссию" также было...все перерыл под отладчиком - не вижу и все тут где 1с это поле сохраняет или не сохраняет...
может у кого-нить есть опыт по этому документу или хотя бы идея :)

bsn-chita

Версия точно не совпадает, но тоже 11.4. Нашел следующие места где идет работа с этими реквизитами:
1. В модуле формы документа в событии при изменении реквизита хоз операция

Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПередачаНаКомиссию Тогда

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

2. Процедуру ЗаполнитьИменаРеквизитовПоХозяйственнойОперации(Модуль менеджера документа ЗаказКлиента).

МассивВсехРеквизитов = Новый Массив;
//МассивВсехРеквизитов.Добавить("Товары.ПроцентРучнойСкидки");
//МассивВсехРеквизитов.Добавить("Товары.СуммаРучнойСкидки");
//МассивВсехРеквизитов.Добавить("Товары.ПроцентАвтоматическойСкидки");
//МассивВсехРеквизитов.Добавить("Товары.СуммаАвтоматическойСкидки");

МассивРеквизитовОперации = Новый Массив;
Если ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияКлиенту
Или ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности
Или Не ЗначениеЗаполнено(ХозяйственнаяОперация) Тогда
//МассивРеквизитовОперации.Добавить("Товары.ПроцентРучнойСкидки");
//МассивРеквизитовОперации.Добавить("Товары.СуммаРучнойСкидки");
//МассивРеквизитовОперации.Добавить("Товары.ПроцентАвтоматическойСкидки");
//МассивРеквизитовОперации.Добавить("Товары.СуммаАвтоматическойСкидки");
КонецЕсли;

Alexbis

Цитата: bsn-chita от 20 дек 2019, 05:01
Версия точно не совпадает, но тоже 11.4. Нашел следующие места где идет работа с этими реквизитами:
1. В модуле формы документа в событии при изменении реквизита хоз операция

Если Объект.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПередачаНаКомиссию Тогда

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

2. Процедуру ЗаполнитьИменаРеквизитовПоХозяйственнойОперации(Модуль менеджера документа ЗаказКлиента).

МассивВсехРеквизитов = Новый Массив;
//МассивВсехРеквизитов.Добавить("Товары.ПроцентРучнойСкидки");
//МассивВсехРеквизитов.Добавить("Товары.СуммаРучнойСкидки");
//МассивВсехРеквизитов.Добавить("Товары.ПроцентАвтоматическойСкидки");
//МассивВсехРеквизитов.Добавить("Товары.СуммаАвтоматическойСкидки");

МассивРеквизитовОперации = Новый Массив;
Если ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияКлиенту
Или ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности
Или Не ЗначениеЗаполнено(ХозяйственнаяОперация) Тогда
//МассивРеквизитовОперации.Добавить("Товары.ПроцентРучнойСкидки");
//МассивРеквизитовОперации.Добавить("Товары.СуммаРучнойСкидки");
//МассивРеквизитовОперации.Добавить("Товары.ПроцентАвтоматическойСкидки");
//МассивРеквизитовОперации.Добавить("Товары.СуммаАвтоматическойСкидки");
КонецЕсли;


по первой процедуре -
ХозяйственнаяОперацияПриИзмененииСервер(ВызовПоКоманде=Истина)
в ней я вообще участок кода этот закомментировал ранее - но он влияет только когда меняешь хозоперацию с комиссии на реализацию... очищает скидки, в случае комисии не работает и не влияет на сохранение данных, те это подтврждае ход  и моих мыслей,

немного сложнее с п.2
как ни странно я в ней тоже ранее вносил изменения - немного по другому вызывал не так как стандартно -
Документы.ЗаказКлиента.ЗаполнитьИменаРеквизитовПоХозяйственнойОперации(
      Объект.ХозяйственнаяОперация,
      МассивВсехРеквизитов,
      МассивРеквизитовОперации);
   
а при комиссии -
Документы.ЗаказКлиента.ЗаполнитьИменаРеквизитовПоХозяйственнойОперации(
      перечисления.ХозяйственнаяОперация.передачанакомиссию,
      МассивВсехРеквизитов,
      МассивРеквизитовОперации);

отображалось все как надо- но не сохранялось - при внесении изменений по Вашему совету - все заработало за что спасибо вам огромное :zebzdr::zebzdr::zebzdr:

в итоге работает как надо!!! thanks!!!   



Добавлено: 20 дек 2019, 09:30


еще добавил в УстановитьВидимостьЭлементовПоОперацииСервер()
//добавляем видимость меню скидки при комиссии
ЭтоПередачаТоваров = Ложь;

Добавлено: 20 дек 2019, 14:11


Рано обрадовался, при всем этом отвалились Этапы оплаты - не сохраняются, а без них не дает выставить счет...:dfbsdfbsdf:

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск