|
Странный код в Документ.ЗаказПокупателя | ☑ | ||
---|---|---|---|---|
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
|
Всё разобрался при откате транзакции отменяться все действия(все сохранённые действия). А документ объект ещё не записывался. Поэтому он останется неоткаченым
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |