| 
    
            
         
         | 
    
    
  | 
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 
 | 
         
        Я понимаю, что собака зарыта где-то в запросе, а где - сообразить не могу. В регистре значений на данное свойство по крайней мере есть один объект с заполненным значением. Так что на выходе я должен получить как минимум одну запись, но не получаю.     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |