|
Отбор записей по ресурсу независимого не периодического регистра сведений | ☑ | ||
---|---|---|---|---|
0
falselight
22.05.19
✎
15:03
|
Есть не периодический независимый регистр сведений КодыТоваровПодключаемогоОборудованияOffline.
У него 2 измерения План обмена и код. Ресурс Номенклатура. Проблема в том что отбор пожно поставить только на измерения. А они могут быть разными. То есть при записи, появится дублирующая запись. С существующей номенклатурой и к примеру с другим планом обмена. Подскажите как быть в такой ситуации? Появилась вот идея. Выбирать и удалять записи регистра сведений, выбранные по номенклатуре. И записывать новую. Как правильно сделать удаление? |
|||
1
Tonik992
22.05.19
✎
15:20
|
Что-то вы всё в кучу намешали.
Р/с не даст вам записать с дублями. |
|||
2
hhhh
22.05.19
✎
15:22
|
(1) с чего бы вдруг не даст? Вы всё пропустили.
|
|||
3
falselight
22.05.19
✎
15:32
|
(1)(2) Обработкой видимо при загрузке программно задваивается.
Я вот такой код написал, что бы удалять имеющиеся записи по ПравилуОбмена и Коду. Требуемой номенклатуры. ЗапросСКУ = Новый Запрос; ЗапросСКУ.Текст = " |ВЫБРАТЬ | КодыТоваровПодключаемогоОборудованияOffline.ПравилоОбмена КАК ПравилоОбмена, | КодыТоваровПодключаемогоОборудованияOffline.Код КАК Код, | КодыТоваровПодключаемогоОборудованияOffline.Номенклатура КАК Номенклатура, | КодыТоваровПодключаемогоОборудованияOffline.Характеристика КАК Характеристика, | КодыТоваровПодключаемогоОборудованияOffline.Упаковка КАК Упаковка, | КодыТоваровПодключаемогоОборудованияOffline.Используется КАК Используется |ИЗ | РегистрСведений.КодыТоваровПодключаемогоОборудованияOffline КАК КодыТоваровПодключаемогоОборудованияOffline |ГДЕ | КодыТоваровПодключаемогоОборудованияOffline.Номенклатура = &Номенклатура | |УПОРЯДОЧИТЬ ПО | КодыТоваровПодключаемогоОборудованияOffline.Номенклатура.Наименование"; ЗапросСКУ.УстановитьПараметр("Номенклатура", Ном.Ссылка); Рез = ЗапросСКУ.Выполнить(); Если Не Рез.Пустой() Тогда Выборка = Рез.Выбрать(); Пока Выборка.Следующий() Цикл // УДАЛЕНИЕ ИМЕЮЩИХСЯ SKU КОДОВ ПО НОМЕНКЛАТУРЕ НаборЗаписей = РегистрыСведений.КодыТоваровПодключаемогоОборудованияOffline.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.ПравилоОбмена.Установить(Выборка.ПравилоОбмена); НаборЗаписей.Отбор.Код.Установить(Выборка.Код); НаборЗаписей.Записать(); КонецЦикла; // СОЗДАНИЕ ЗАПИСИ С КОДОМ SKU ПО ЗАГРУЖАЕМОЙ НОМЕНКЛАТУРЕ КодСКУ = РегистрыСведений.КодыТоваровПодключаемогоОборудованияOffline.СоздатьМенеджерЗаписи(); КодСКУ.ПравилоОбмена = Справочники.ПравилаОбменаСПодключаемымОборудованиемOffline.НайтиПоНаименованию("тест"); КодСКУ.Код = ТекСтрока.SKU; КодСКУ.Активность = Истина; КодСКУ.Используется = Истина; КодСКУ.Номенклатура = Ном.Ссылка; Если ТекСтрока.Период = "" тогда ТекСтрока.Период = ТекущаяДата(); КонецЕсли; КодСКУ.Период = ТекСтрока.Период; КодСКУ.Записать(Истина); Иначе КодСКУ = РегистрыСведений.КодыТоваровПодключаемогоОборудованияOffline.СоздатьМенеджерЗаписи(); КодСКУ.ПравилоОбмена = Справочники.ПравилаОбменаСПодключаемымОборудованиемOffline.НайтиПоНаименованию("тест"); КодСКУ.Код = ТекСтрока.SKU; КодСКУ.Активность = Истина; КодСКУ.Используется = Истина; КодСКУ.Номенклатура = Ном.Ссылка; Если ТекСтрока.Период = "" тогда ТекСтрока.Период = ТекущаяДата(); КонецЕсли; КодСКУ.Период = ТекСтрока.Период; КодСКУ.Записать(Истина); КонецЕсли; |
|||
4
falselight
22.05.19
✎
15:37
|
(2) Спасибо за подсказки. По вашему методу делал.
Пока Выборка.Следующий() Цикл // УДАЛЕНИЕ ИМЕЮЩИХСЯ SKU КОДОВ ПО НОМЕНКЛАТУРЕ НаборЗаписей = РегистрыСведений.КодыТоваровПодключаемогоОборудованияOffline.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.ПравилоОбмена.Установить(Выборка.ПравилоОбмена); НаборЗаписей.Отбор.Код.Установить(Выборка.Код); НаборЗаписей.Записать(); КонецЦикла; // СОЗДАНИЕ ЗАПИСИ С КОДОМ SKU ПО ЗАГРУЖАЕМОЙ НОМЕНКЛАТУРЕ КодСКУ = РегистрыСведений.КодыТоваровПодключаемогоОборудованияOffline.СоздатьМенеджерЗаписи(); КодСКУ.ПравилоОбмена = Справочники.ПравилаОбменаСПодключаемымОборудованиемOffline.НайтиПоНаименованию("тест"); КодСКУ.Код = ТекСтрока.SKU; КодСКУ.Активность = Истина; КодСКУ.Используется = Истина; КодСКУ.Номенклатура = Ном.Ссылка; Если ТекСтрока.Период = "" тогда ТекСтрока.Период = ТекущаяДата(); КонецЕсли; КодСКУ.Период = ТекСтрока.Период; КодСКУ.Записать(Истина); |
|||
5
Tonik992
22.05.19
✎
16:07
|
(2) Расскажите, как добавить в непериодический независимый р/с две записи с одинаковыми измерениями?
|
|||
6
hhhh
22.05.19
✎
16:10
|
(5) по-русски вроде человек написал: с одинаковыми РЕСУРСАМИ. Какое слово вам там непонятно?
|
|||
7
Tonik992
22.05.19
✎
16:15
|
(6) Скрин точной фразы "с одинаковыми РЕСУРСАМИ" сделайте из топика. Подкрепите ваши слова
|
|||
8
falselight
22.05.19
✎
16:49
|
(7) Суть в том что появлялись дубли, номенклатуры, с разными планами обмена и кодами.
А номенклатура должна быть одна как и код SKU по ней. Но обработка вот делала дубли По подсказке (2) сделано (4). Пока в работе ещё особо не проверено. |
|||
9
Сияющий в темноте
22.05.19
✎
18:54
|
Это реализация сценария из ут10,там код подвязывается к кассе.
решение проблемы-суррогат в первое измерение всегда фиксированный |
|||
10
Лефмихалыч
22.05.19
✎
20:06
|
(0) тебе нужен другой регистр
|
|||
11
palsergeich
22.05.19
✎
20:14
|
Простейшим запросом и чуть чуть кода это можно сделать.
Но сама задача говорит о том, что необходим еще один объект метаданных. Отбор записей по ресурсу РС - моветон. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |