Странный код в Документ.ЗаказПокупателя
☑
0
miklenew
04.12.15
✎
13:18
Текст тру 1С-ника (штатный)
Если Проведен Тогда
НачатьТранзакцию();
НаборОстаткиТоваров = РегистрыНакопления.ТоварыВРезервеНаСкладах.СоздатьНаборЗаписей();
НаборОстаткиТоваров.Отбор.Регистратор.Установить(Ссылка);
НаборОстаткиТоваров.Записать();
НаборЗаказыПоставщикам = РегистрыНакопления.РазмещениеЗаказовПокупателей.СоздатьНаборЗаписей();
НаборЗаказыПоставщикам.Отбор.Регистратор.Установить(Ссылка);
НаборЗаказыПоставщикам.Записать();
КонецЕсли;
ЗаполнитьТабличныеЧастиПередПроведениемУпр(СтруктураПараметров);
Если Проведен Тогда
ОтменитьТранзакцию();
КонецЕсли;
Текст, который написал бы я:
Если Проведен Тогда
НаборОстаткиТоваров = РегистрыНакопления.ТоварыВРезервеНаСкладах.СоздатьНаборЗаписей();
НаборОстаткиТоваров.Отбор.Регистратор.Установить(Ссылка);
НаборОстаткиТоваров.Записать();
НаборЗаказыПоставщикам = РегистрыНакопления.РазмещениеЗаказовПокупателей.СоздатьНаборЗаписей();
НаборЗаказыПоставщикам.Отбор.Регистратор.Установить(Ссылка);
НаборЗаказыПоставщикам.Записать();
ЗаполнитьТабличныеЧастиПередПроведениемУпр(СтруктураПараметров);
КонецЕсли;
Но так как написано именно так как написано. Не пойму в чём глубокий смысл штатного кода?
Документ.ЗаказПокупателя -> Кнопка Заполнить и провести
1
Горогуля
04.12.15
✎
13:20
да
2
miklenew
04.12.15
✎
13:22
Описался. Во втором блоке. Тот что мой. Если не Проведен тогда
3
Горогуля
04.12.15
✎
13:22
да пофиг. да
4
miklenew
04.12.15
✎
13:23
(3) Гуляй
5
Горогуля
04.12.15
✎
13:24
(4) ты мне не указ
6
mikeA
04.12.15
✎
13:33
(0) у тебя ЗаполнитьТабличныеЧастиПередПроведениемУпр будет выполняться только когда документ не проведён
в оригинале выполняется всегда
7
mikeA
04.12.15
✎
13:36
(6)+ видимо в этой процедуре данные из регистров РазмещениеЗаказовПокупателей и ТоварыВРезервеНаСкладах должны браться запросом БЕЗ УЧЁТА движений этого документа
отсюда и фокусы с транзакцией
8
aleks_default
04.12.15
✎
13:38
Смысл кода в том чтобы очистить движения документа перед проведением если он раньше был проведен.
А ты очищаешь итак пустые наборы.
9
miklenew
04.12.15
✎
13:53
Всё разобрался при откате транзакции отменяться все действия(все сохранённые действия). А документ объект ещё не записывался. Поэтому он останется неоткаченым
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан