|
При программной записи стирается реквизит документа | ☑ | ||
---|---|---|---|---|
0
sidalexsandr
23.01.13
✎
17:24
|
Конфигурация УПП 1.3
Создаю программно документ РеализацияТоваровУслуг и заполняю шапку: ПодчРеализация = Документы.РеализацияТоваровУслуг.СоздатьДокумент(); ПодчРеализация.Дата = РабочаяДата; // //******************************************************************** ЗаполнениеДокументов.ЗаполнитьШапкуДокументаПоОснованию(ПодчРеализация, ЭтотОбъект); ПодчРеализация.ВидОперации = Перечисления.ВидыОперацийРеализацияТоваров.ПродажаКомиссия; ПодчРеализация.Записать(РежимЗаписиДокумента.Запись); Вопрос: Почему после Записи очищаются реквизиты документа ДоговорКонтрагента и ВидПередачи? |
|||
1
sidalexsandr
23.01.13
✎
17:25
|
Процедуру ПередЗаписью() закомментировал. Всеравно 2 этих реквизита очищаются.
|
|||
2
Wobland
23.01.13
✎
17:25
|
почему так решил?
|
|||
3
sidalexsandr
23.01.13
✎
17:26
|
(2) Если убрать строчку ПодчРеализация.Записать(РежимЗаписиДокумента.Запись);
То все нормально. |
|||
4
Bober
23.01.13
✎
17:26
|
(0) есть подписка, есть проверка заполнения. Еще много мест где может это происходить
|
|||
5
sidalexsandr
23.01.13
✎
17:28
|
(4) Проверка заполнения - вроде только срабатывает когда незаполненно?
|
|||
6
DrShad
23.01.13
✎
17:30
|
[ПодчРеализация.ВидОперации = Перечисления.ВидыОперацийРеализацияТоваров.ПродажаКомиссия;] все зло здесь!
|
|||
7
Reset
23.01.13
✎
17:31
|
Не удивлюсь, если (1) проделано на форме.
Это ни к чему, просто к слову |
|||
8
КуплюКровать
23.01.13
✎
17:32
|
(0)отладчиком умеешь пользоваться?
|
|||
9
mehfk
23.01.13
✎
17:40
|
(0)
// Процедура вызывается перед записью документа // Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения) Если ОбменДанными.Загрузка Тогда Возврат; КонецЕсли; мУдалятьДвижения = НЕ ЭтоНовый(); // Если договор с комиссионером, то надо почистить закладку "Услуги". Если Услуги.Количество() > 0 И (ДоговорКонтрагента.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СКомиссионером ИЛИ ВидОперации = Перечисления.ВидыОперацийРеализацияТоваров.ОтгрузкаБезПереходаПраваСобственности) Тогда Услуги.Очистить(); КонецЕсли; // Если вид операции документа "АктВыполненныхРабот", то очистим ТЧ Товары и ВозвратнаяТара Если ВидОперации = Перечисления.ВидыОперацийРеализацияТоваров.АктВыполненныхРабот Тогда Если Товары.Количество() > 0 Тогда Товары.Очистить(); КонецЕсли; Если ВозвратнаяТара.Количество() > 0 Тогда ВозвратнаяТара.Очистить(); КонецЕсли; КонецЕсли; // Проверка заполнения единицы измерения мест и количества мест ОбработкаТабличныхЧастей.ПриЗаписиПроверитьЕдиницуИзмеренияМест(Товары); ОбработкаТабличныхЧастей.ПриЗаписиПроверитьСтавкуНДС(ЭтотОбъект, Товары); ОбработкаТабличныхЧастей.ПриЗаписиПроверитьСтавкуНДС(ЭтотОбъект, Услуги); // Посчитать суммы документа и записать ее в соответствующий реквизит шапки для показа в журналах СуммаДокумента = УчетНДС.ПолучитьСуммуДокументаСНДС(ЭтотОбъект, "Товары") + УчетНДС.ПолучитьСуммуДокументаСНДС(ЭтотОбъект, "Услуги"); // В этом случае почистим в табличных частях поле СпособСписанияОстаткаТоваров. Если ВидОперации = Перечисления.ВидыОперацийРеализацияТоваров.Оборудование Тогда Сделка = Неопределено; Для каждого СтрокаТаблицы Из ЭтотОбъект.Товары Цикл Если СтрокаТаблицы.СпособСписанияОстаткаТоваров = Перечисления.СпособыСписанияОстаткаТоваров.ИзРезерва Тогда СтрокаТаблицы.СпособСписанияОстаткаТоваров = ""; КонецЕсли; КонецЦикла; Для Каждого СтрокаТаблицы Из ЭтотОбъект.ВозвратнаяТара Цикл Если СтрокаТаблицы.СпособСписанияОстаткаТоваров = Перечисления.СпособыСписанияОстаткаТоваров.ИзРезерва Тогда СтрокаТаблицы.СпособСписанияОстаткаТоваров = ""; КонецЕсли; КонецЦикла; //для брака способ списания всегда - со склада ИначеЕсли ВидОперации = Перечисления.ВидыОперацийРеализацияТоваров.Брак Тогда Для каждого СтрокаТаблицы Из ЭтотОбъект.Товары Цикл Если СтрокаТаблицы.СпособСписанияОстаткаТоваров = Перечисления.СпособыСписанияОстаткаТоваров.ИзРезерва Тогда СтрокаТаблицы.СпособСписанияОстаткаТоваров = Перечисления.СпособыСписанияОстаткаТоваров.СоСклада; Сообщить("В строке №"+СтрокаТаблицы.НомерСтроки+" табличной части ""Товары"" изменен способ списания остатка товаров: было 'Из резерва', установлено 'Со склада'."+Символы.ПС+" Списывать брак из резерва запрещено.", СтатусСообщения.Внимание); КонецЕсли; КонецЦикла; Для Каждого СтрокаТаблицы Из ЭтотОбъект.ВозвратнаяТара Цикл Если СтрокаТаблицы.СпособСписанияОстаткаТоваров = Перечисления.СпособыСписанияОстаткаТоваров.ИзРезерва Тогда СтрокаТаблицы.СпособСписанияОстаткаТоваров = Перечисления.СпособыСписанияОстаткаТоваров.СоСклада; Сообщить("В строке №"+СтрокаТаблицы.НомерСтроки+" табличной части ""Возвратная тара"" изменен способ списания остатка товаров: было 'Из резерва', установлено 'Со склада'."+Символы.ПС+" Списывать брак из резерва запрещено.", СтатусСообщения.Внимание); КонецЕсли; КонецЦикла; Иначе // Необходимо, чтобы качество обязательно было "Новый" КачествоНовый = Справочники.Качество.Новый; Для каждого СтрокаТаблицы Из ЭтотОбъект.Товары Цикл Если СтрокаТаблицы.Качество <> КачествоНовый Тогда СтрокаТаблицы.Качество = КачествоНовый; КонецЕсли; КонецЦикла КонецЕсли; Если НЕ ЗначениеЗаполнено(Сделка) И Сделка <> Неопределено Тогда Сделка = Неопределено; КонецЕсли; УчетНДС.СинхронизацияПометкиНаУдалениеУСчетаФактуры(ЭтотОбъект); УправлениеЗаказами.ЗаполнитьЗаказПокупателяВТЧ(ВидОперации,ЭтотОбъект, "Реализация"); Для каждого СтрокаТаблицы Из ЭтотОбъект.Товары Цикл Если НЕ ЗначениеЗаполнено(СтрокаТаблицы.ЗаказПокупателя) И СтрокаТаблицы.СпособСписанияОстаткаТоваров = Перечисления.СпособыСписанияОстаткаТоваров.ИзРезерва Тогда СтрокаТаблицы.СпособСписанияОстаткаТоваров = Перечисления.СпособыСписанияОстаткаТоваров.СоСклада; КонецЕсли; КонецЦикла; Для каждого СтрокаТаблицы Из ЭтотОбъект.ВозвратнаяТара Цикл Если НЕ ЗначениеЗаполнено(СтрокаТаблицы.ЗаказПокупателя) И СтрокаТаблицы.СпособСписанияОстаткаТоваров = Перечисления.СпособыСписанияОстаткаТоваров.ИзРезерва Тогда СтрокаТаблицы.СпособСписанияОстаткаТоваров = Перечисления.СпособыСписанияОстаткаТоваров.СоСклада; КонецЕсли; КонецЦикла; ЗаполнитьСкладыВТЧ(); // Удаление неиспользуемых строк табличной части "Серийные номера". УчетСерийныхНомеров.УдалитьНеиспользуемыеСтрокиПодчиненнойТЧ(ЭтотОбъект, мПараметрыСвязиСтрокТЧ, "Товары"); УчетСерийныхНомеров.УдалитьНеиспользуемыеСтрокиПодчиненнойТЧ(ЭтотОбъект, мПараметрыСвязиСтрокТЧ, "СоставНабора", "СерийныеНомераСоставНабора"); КонецПроцедуры // ПередЗаписью |
|||
10
sidalexsandr
23.01.13
✎
17:42
|
(9)Спасибо, но я в (1) писал, что пробовал даже полностью закомментировать ПередЗаписью(). Ничего не помагает.
|
|||
11
Reset
23.01.13
✎
17:45
|
(10) Читал (6)?
Перенеси строку до заполнения шапки. |
|||
12
DrShad
23.01.13
✎
17:45
|
(11) ну взял и весь холивар испортил
|
|||
13
sidalexsandr
23.01.13
✎
17:48
|
(11) Я её вообще закомментировал, не помогло.
|
|||
14
sidalexsandr
23.01.13
✎
17:49
|
Всем спасибо. Пока не нашел причину.
|
|||
15
Reset
23.01.13
✎
17:50
|
(14) Тогда учись (8) :)
|
|||
16
DrShad
23.01.13
✎
17:57
|
(13) а кто говорил об закомментировать?
|
|||
17
mehfk
23.01.13
✎
18:08
|
(14) ВидПередачи - посмотри в отладчике. Он не то что не очищается, он и не заполняется :)
|
|||
18
GROOVY
23.01.13
✎
18:21
|
Возможно реквизиты формы не привязаны к реквизитам документа?
|
|||
19
Reset
23.01.13
✎
18:23
|
(17)(18)
из (2)->(3) следует, что заполняется и привязан. Но, может, я плохо интерпретирую ответ автора. |
|||
20
mehfk
23.01.13
✎
18:47
|
(18) в коде ТС работы с формой нет. Но мысль вместо записи док-та открыть форму тоже была.
(19) м.б., не хуже и не лучше чем остальные. |
|||
21
sidalexsandr
24.01.13
✎
10:40
|
(17) Написал в коде : ПодчРеализация.ВидПередачи = Перечисления.ВидыПередачиТоваров.СоСклада;
|
|||
22
sidalexsandr
24.01.13
✎
10:41
|
(17) Спасибо.
|
|||
23
Reset
24.01.13
✎
12:04
|
(22) То есть ты всем дурил голову, начиная с (3) и поле у тебя просто не было заполнено с самого начала.
Браво. Верная мысль была, оказыватся, в (2), а я хреновый телепат и переоценил тебя |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |