|
Запись в регистр сведений | ☑ | ||
---|---|---|---|---|
0
Ilqarupup
19.02.17
✎
19:14
|
Добрый день! Такой вопрос, есть регистр сведений непериодический независимый "ТранзакцииСФ" с измерениями :
Контрагент ЗаказПокупателя и ресурсом ОписаниеОшибки (строка 0) теперь хочу записывать туда данные, использую метод "СоздатьМенеджерЗаписи". МенеджерЗаписи=РегистрыСведений.ТранзакцииСФ.СоздатьМенеджерЗаписи(); МенеджерЗаписи.Контрагент=Контрагент; МенеджерЗаписи.ЗаказПокупателя=ЗаказПокупателя; МенеджерЗаписи.ОписаниеОшибки=описаниеошибки; МенеджерЗаписи.Записать(); Теперь такая проблема, у меня могут быть случаи, когда записывается ТОЛЬКО Контрагент, а в других случаях могу и вместе с заказом записывать. Только в регистр эти случаи попадают по отдельности. 1 строка с пустым заказом, другая заполненная. Есть вариант после записи с заказом покупателя удалять записи только с контрагентом. Но есть ли другие варианты решения вопроса? Вариант только с измерением Контрагент не предлагайте, возможны случаи когда на одного контрагента будут несколько заказов покупателя. |
|||
1
Lexey_
19.02.17
✎
19:19
|
(0) ну меняй существующую запись вместо создания новой
|
|||
2
Ilqarupup
19.02.17
✎
19:20
|
может как то в отбор список значений можно передавать, и в список включить и пустое значение и сам заказ?
|
|||
3
Ilqarupup
19.02.17
✎
19:21
|
через СоздатьНаборЗаписей попробовать?
|
|||
4
Amra
19.02.17
✎
19:22
|
(2) А не проще не добавлять запись без заполненного заказа?
|
|||
5
Ilqarupup
19.02.17
✎
19:23
|
(4) нет, такой случай возможен
|
|||
6
Ilqarupup
19.02.17
✎
19:50
|
через набор записей сделал, работает правда немного мудрено
НаборЗаписей=РегистрыСведений.ТранзакцииСФ.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.контрагент.Установить(Контрагент); Если ЗначениеЗаполнено(ЗаказПокупателя) тогда НаборЗаписей1=РегистрыСведений.ТранзакцииСФ.СоздатьНаборЗаписей(); НаборЗаписей1.Отбор.контрагент.Установить(Контрагент); НаборЗаписей1.Отбор.ЗаказПокупателя.Установить(Неопределено); НаборЗаписей1.Очистить(); НаборЗаписей1.Записать(); НаборЗаписей.Отбор.ЗаказПокупателя.Установить(ЗаказПокупателя); иначе НаборЗаписей.Прочитать(); Если НаборЗаписей.Количество()>0 тогда //записи уже есть Возврат; КонецЕсли; КонецЕсли; НаборЗаписей.Очистить(); Запись=НаборЗаписей.Добавить(); Запись.Контрагент=Контрагент; Запись.ЗаказПокупателя=ЗаказПокупателя; Запись.ОписаниеОшибки=описаниеошибки; НаборЗаписей.Записать(); |
|||
7
Lexey_
19.02.17
✎
20:00
|
(6) что за дичь? Меняй существующий набор, а не создавай новый
|
|||
8
Ilqarupup
19.02.17
✎
20:03
|
(7) обычно первым создается запись с пустым контрагентом, потом контрагент + заказ, поэтому если заказ покупатель есть я должен удалить строки с пустым заказом
Если ЗначениеЗаполнено(ЗаказПокупателя) тогда НаборЗаписей1=РегистрыСведений.ТранзакцииСФ.СоздатьНаборЗаписей(); НаборЗаписей1.Отбор.контрагент.Установить(Контрагент); НаборЗаписей1.Отбор.ЗаказПокупателя.Установить(Неопределено); НаборЗаписей1.Очистить(); НаборЗаписей1.Записать(); НаборЗаписей.Отбор.ЗаказПокупателя.Установить(ЗаказПокупателя); иначе |
|||
9
Ilqarupup
19.02.17
✎
20:04
|
если не делать этого я получу 2 строки , одну с пустым заказом, другую заполненную. Или я не так понимаю отборы.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |