|
OFF: Свойства номенклатуры, чтение и запись значений | ☑ | ||
---|---|---|---|---|
0
Steelwolf
16.02.14
✎
14:47
|
Доброго времени суток! Пишу простенькую обработку. Конфигурация УТ 10.3. Для справочника "Номенклатура" создал свойство "Артикул производителя" с типом значений "Строка". Значения не предопределяю. Суть обработки в том, чтобы считать и записать значения этого свойства для нужных товаров.
Товара много, набивать руками - можно смело повеситься. Поэтому и пишу небольшую обработку, где я получаю артикулы из файла и сохраняю их в массив. Потом по определенным условиям присваиваю их нужной номенклатуре, если их нет, а если есть, то сверяю с эталоном, и если не совпадают, то перезаписываю. Для примера, есть товар 1, товар 2 и так далее, товар 10000, всем этим товарам я присвоил свойство "Артикул производителя". Руками я могу указать значение, для этого могу зайти в редактирование номенклатуры и выбрать вкладку "Свойства". Но товаров ~10000, лень столько колотить, да и вероятность ошибки очень высока. Вариант с уже имеющимся свойством "Артикул" не рассматриваю, так как поставщиков много и номенклатура тоже разная, соответственно артикулов будет много. Например, "Артикул производителя", "Артикул Магазина 1" и так далее. То есть тут два вопроса: как считать значение свойства, которое принадлежит товару 10, например, и как это значение определить или переопределить. Навыки программирования есть, а вот знаний по структуре и принципам работы нет. Поэтому прошу помощи. P.S. Я думаю, что решаю единичную задачу, поэтому, пожалуйста, не предлагайте пройти в лес и почитать Радченко. |
|||
1
Эльниньо
16.02.14
✎
14:50
|
Кури подчиненные справочники и ИспользоватьВладельца()
|
|||
2
Yea-Yea
16.02.14
✎
14:50
|
"артикулы из файла" - а данные для сопоставления с имеющейся номенклатурой в ИБ есть?
|
|||
3
Yea-Yea
16.02.14
✎
14:50
|
(1)имхо для свойств номенклатуры подчиненные и владельцы ни к чему.
истина в регистре значения свойств объектов |
|||
4
Эльниньо
16.02.14
✎
14:54
|
(3) Извиняюсь. Не обратил внимание на "УТ 10.3".
Я презренный клюшешник. |
|||
5
Yea-Yea
16.02.14
✎
14:56
|
(4) бывает ) клюшечники профессионалы сейчас тоже в цене )
|
|||
6
Steelwolf
16.02.14
✎
14:58
|
(2) Да, в данном случае в качестве сопоставления будет выступать наименование товара номенклатуры.
|
|||
7
Yea-Yea
16.02.14
✎
15:00
|
тогда грузи файл в таблицу значений, в запросе к таблице значений присоединяй элементы номенклатуры (соединение по наименованию), полученный результат перебирай в цикле и для каждой строки создавай запись в регистре ЗначенияСвойствОбъектов
|
|||
8
Steelwolf
16.02.14
✎
15:08
|
(7) Извините, Вы сейчас на китайском? :)
Я немного разверну вопрос. Есть файл, из этого файла я выгрузил все в двумерный массив, где есть артикул и есть наименование. Далее в цикле хочу сделать проверку для каждой единицы номенклатуры на наличие артикула. Или я неправильно делаю? |
|||
9
Yea-Yea
16.02.14
✎
15:14
|
походу да, на китайском )))
|
|||
10
Yea-Yea
16.02.14
✎
15:15
|
держи. бесплатно )
ВЫБРАТЬ ТаблицаАртикулов.Наименование КАК Наименование, ТаблицаАртикулов.Артикул КАК Артикул ПОМЕСТИТЬ ТаблицаАртикулов ИЗ &ТаблицаАртикулов КАК ТаблицаАртикулов ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ТаблицаАртикулов.Наименование КАК Наименование, ТаблицаАртикулов.Артикул КАК Артикул, Номенклатура.Ссылка КАК Ссылка ПОМЕСТИТЬ ТаблицаНоменклатуры ИЗ ТаблицаАртикулов КАК ТаблицаАртикулов ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура ПО ТаблицаАртикулов.Наименование = Номенклатура.Наименование ГДЕ НЕ Номенклатура.Ссылка ЕСТЬ NULL ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ТаблицаНоменклатуры.Наименование, ТаблицаНоменклатуры.Артикул, ТаблицаНоменклатуры.Ссылка, ЗначенияСвойствОбъектов.Значение ИЗ ТаблицаНоменклатуры КАК ТаблицаНоменклатуры ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов ПО ТаблицаНоменклатуры.Ссылка = ЗначенияСвойствОбъектов.Объект И (ЗначенияСвойствОбъектов.Свойство = &ТвоеСвойствоАртикула) ГДЕ НЕ ЗначенияСвойствОбъектов.Значение ЕСТЬ NULL |
|||
11
Steelwolf
16.02.14
✎
15:18
|
Ой, благодарю!
Сейчас буду пробовать переваривать! :) |
|||
12
Steelwolf
19.02.14
✎
10:52
|
А что-то я не пойму.
Запрос1 = Новый Запрос(); Запрос1.Текст = " |ВЫБРАТЬ | ЗначенияСвойствОбъектов.Объект КАК Наименование, | ЗначенияСвойствОбъектов.Значение КАК Артикул |ИЗ | РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов |ГДЕ | ЗначенияСвойствОбъектов.Свойство = &Арт"; Запрос1.УстановитьПараметр("Арт", "Артикул Магазин1"); Результат1 = Запрос1.Выполнить(); Выборка1 = Результат1.Выбрать(); Сообщить ("Артикул" + Выборка1.Артикул + " // Наименование " + Выборка1.Наименование); Пока Выборка1.Следующий() Цикл ОбработкаПрерыванияПользователя(); Сообщить ("Артикул " + Выборка1.Артикул); КонецЦикла; Запись в Регистре сведений точно есть. |
|||
13
Steelwolf
19.02.14
✎
10:53
|
Ой, не дописал.
На выходе ничего нет, все пусто. |
|||
14
Steelwolf
19.02.14
✎
11:27
|
Я понимаю, что собака зарыта где-то в запросе, а где - сообразить не могу. В регистре значений на данное свойство по крайней мере есть один объект с заполненным значением. Так что на выходе я должен получить как минимум одну запись, но не получаю.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |