|
Замена записей в регистре сведений | ☑ | ||
---|---|---|---|---|
0
Boudybuilder
07.09.13
✎
22:18
|
Всем привет!
Уже научен обращаться сюда тока в последнюю очередь , но что то я туплю сегодня , так как не особо умею обращаться с записями регистра сведений. Речь идет о непереодическом р.с. "НоменклатураКонтрагентов". В УТ он есть в типовой. Кто не знает описываю: Измерения: -Контрагент -Номенклатура -ХарактеристикиНоменклатуры Ресурсы: - КодНоменклатурыКонтрагента и остальные для меня не важные. Задача такова что мне надо в одном наборе записей отредактировать имеющиеся и добавить отсутсвующие. Что то я сформулировать вопрос нормально не могу. Прастыте! Из прайса ексель получаю таблицу , переношу ее в табличное поле "РегСвНаборЗаписей" там редактирую , а потом бы все это записать в регистр с замещением , но прикол в том что записи надо искать по коду и контрагенту (где одно ресурс а другое измерение), а в МенеджерЗаписей отбирает тока по измерениям вроде. |
|||
1
Euguln
07.09.13
✎
22:24
|
Читай набор записей, выгружай в таблицу, таблицу редактируй, загружай обратно и записывай.
|
|||
2
grayshadow
07.09.13
✎
22:29
|
>табличное поле "РегСвНаборЗаписей"
:))) каким образом должно происходить замещение? по КодНоменклатурыКонтрагента ? не взлетит |
|||
3
Boudybuilder
07.09.13
✎
22:30
|
(1) Это наверное проходит если я хочу только отредактировать имеющиеся записи.
А если надо и добавить запись? |
|||
4
Boudybuilder
07.09.13
✎
22:31
|
(3) Тогда КодНоменклатурыКонтрагента в Измерения? а редактировать типовую ой как не хочется.
|
|||
5
Boudybuilder
07.09.13
✎
22:34
|
А что если перед записью из НабораЗаписей получить еще один НаборЗаписей2 отобранный по Контрагент и КодНоменклатурыКонтрагента и удалить из регистра.
|
|||
6
grayshadow
07.09.13
✎
22:35
|
можно пример, что надо удалить, что изменить и что добавить
|
|||
7
Euguln
07.09.13
✎
22:49
|
(3) Никто не мешает в таблицу добавлять записи.
|
|||
8
Boudybuilder
07.09.13
✎
22:59
|
(2) Именно!
|
|||
9
grayshadow
07.09.13
✎
23:09
|
но при этом никто не гарантирует что записи получатся уникальные по измерениям:) принципиальный вопрос - как установить отбор перед записью набора...
|
|||
10
Boudybuilder
08.09.13
✎
00:20
|
Так как записей редактируется всегда не много то решил в цикл забить запрос и делать таким образом. Теперь перед записью все записи по даному контрагенту и коду удаляются.
Для каждого Строка Из СписокНоменклатуры Цикл Если НЕ Строка.Номенклатура.Пустая() И НЕ Строка.Номенклатура.ЭтоГруппа Тогда // Получим все записи в регистре по даному коду контрагента и контрагенту и удалим их ЗП = Новый Запрос; ЗП.Текст = "ВЫБРАТЬ | НоменклатураКонтрагентов.Номенклатура, | НоменклатураКонтрагентов.ХарактеристикаНоменклатуры |ИЗ | РегистрСведений.НоменклатураКонтрагентов КАК НоменклатураКонтрагентов |ГДЕ | НоменклатураКонтрагентов.Контрагент = &Контрагент | И НоменклатураКонтрагентов.КодНоменклатурыКонтрагента = &Код"; ЗП.УстановитьПараметр("Контрагент",Контрагент); ЗП.УстановитьПараметр("Код",Строка.КодНоменклатурыКонтрагента); Рез = ЗП.Выполнить(); Если Не Рез.Пустой() Тогда Выб = Рез.Выбрать(); Пока Выб.Следующий() Цикл ЗаписьДляУдаления = РегистрыСведений.НоменклатураКонтрагентов.СоздатьМенеджерЗаписи(); ЗаписьДляУдаления.Контрагент = Контрагент; ЗаписьДляУдаления.Номенклатура = Выб.Номенклатура; ЗаписьДляУдаления.ХарактеристикаНоменклатуры = Выб.ХарактеристикаНоменклатуры; ЗаписьДляУдаления.Удалить(); КонецЦикла; КонецЕсли; // Создадим новую запись Запись = РегистрыСведений.НоменклатураКонтрагентов.СоздатьМенеджерЗаписи(); Запись.Контрагент = Контрагент; Запись.Контрагент = Контрагент; Запись.Номенклатура = Строка.Номенклатура; Запись.ХарактеристикаНоменклатуры = Строка.ХарактеристикаНоменклатуры; Запись.КодНоменклатурыКонтрагента = СокрЛП(Строка.КодНоменклатурыКонтрагента); Запись.АртикулНоменклатурыКонтрагента = СокрЛП(Строка.АртикулНоменклатурыКонтрагента); Запись.НаименованиеНоменклатурыКонтрагента = СокрЛП(Строка.НаименованиеНоменклатурыКонтрагента); Запись.ШтрихКодНоменклатурыКонтрагента = СокрЛП(Строка.ШтрихКодНоменклатурыКонтрагента); Запись.ЕдиницаНоменклатурыКонтрагента = Строка.Номенклатура.БазоваяЕдиницаИзмерения; Запись.Записать(Истина); КонецЕсли; КонецЦикла; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |