|   |   | 
| 
 | Как получить цену номенклатуры 1с 7.7 через com объект | ☑ | ||
|---|---|---|---|---|
| 0
    
        Eeelena 04.12.14✎ 09:25 | 
        Делаю обработку по загрузке цен номенклатуры в базу 8.2 из 7.7 
 подскажите как получить цену номенклатуры, на данный момент код обработки следующий Процедура КнопкаВыполнитьНажатие(Кнопка) База77Открыта = Ложь; База77 = Новый COMОбъект("V77.Application"); //СтрокаПодключения = "/D"""" /N"""" /P"""""; //Oк = лБазаОле.Initialize(лБазаОле.RMTrade,"/D"""+СокрЛП(псПутьКБазе)+""" /N"+псЛогин+" /P"+псПароль,"NO_SPLASH_SHOW"); ПутьКБазе="C:\Users\elena\Documents\Клиенты\фирма БАРС\base\DB"; Пользователь="прог"; Пароль="123"; СтрокаПодключения = "/D"""+СокрЛП(ПутьКБазе)+""" /N"""+СокрЛП(Пользователь)+""" /P"""+СокрЛП(Пароль)+""""; Если База77.Initialize(База77.RMTrade,СтрокаПодключения ,"NO_SPLASH_SHOW") = 0 ТОгда Сообщить("Ошибка подключения к информационной базе 1С:Предприятие 7.7!", СтатусСообщения.Важное); Иначе База77Открыта = Истина; КонецЕсли; Если База77Открыта Тогда Док = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент(); Товары = База77.CreateObject("Справочник.Номенклатура"); СпрЦен = База77.CreateObject("Справочник.Цены"); Товары.ВыбратьЭлементы(); СпрЦен.ВыбратьЭлементы(); Пока Товары.ПолучитьЭлемент() = 1 Цикл НайднТовар = Справочники.Номенклатура.НайтиПоНаименованию(Товары.Наименование,Истина); Пока СпрЦен.ПолучитьЭлемент()=1 Цикл Если НайднТовар.Пустая() Тогда НайднТовар = СоздатьНовыйТовар(Товары); Если НайднТовар = Неопределено Тогда Продолжить; КонецЕсли; КонецЦикла; НоваяСтрока = Док.Товары.Добавить(); НоваяСтрока.Номенклатура = НайднТовар.Ссылка; НоваяСтрока.ЕдиницаИзмерения = НайднТовар.ЕдиницаХраненияОстатков; //НоваяСтрока.ТипЦен = Закупочный; //НоваяСтрока.Цена = ЦенаЗакуп; НоваяСтрока.Валюта = Константы.ВалютаРегламентированногоУчета.Получить(); НоваяСтрока = Док.Товары.Добавить(); НоваяСтрока.Номенклатура = НайднТовар.Ссылка; НоваяСтрока.ЕдиницаИзмерения = НайднТовар.ЕдиницаХраненияОстатков; //НоваяСтрока.ТипЦен = Оптовый; //НоваяСтрока.Цена = ЦенаОпт; НоваяСтрока.Валюта = Константы.ВалютаРегламентированногоУчета.Получить(); НоваяСтрока = Док.Товары.Добавить(); НоваяСтрока.Номенклатура = НайднТовар.Ссылка; НоваяСтрока.ЕдиницаИзмерения = НайднТовар.ЕдиницаХраненияОстатков; //НоваяСтрока.ТипЦен = Розница; //НоваяСтрока.Цена = ЦенаРозн; НоваяСтрока.Валюта = Константы.ВалютаРегламентированногоУчета.Получить(); КонецЕсли; КонецЦикла; Форма = Док.ПолучитьФорму("ФормаДокумента"); Форма.Открыть(); КонецЕсли; КонецПроцедуры | |||
| 1
    
        Ёпрст гуру 04.12.14✎ 09:29 | 
        всё в топку     | |||
| 2
    
        Eeelena 04.12.14✎ 09:31 | 
        (1) ?     | |||
| 3
    
        Ёпрст гуру 04.12.14✎ 09:32 | 
        (2) клюшки в глаза не видели поди да ?     | |||
| 4
    
        Eeelena 04.12.14✎ 09:34 | 
        (3) не поняла     | |||
| 5
    
        Wobland 04.12.14✎ 09:35 | 
        (4) плохой, негодный код. неужели ты наблюдаешь платформу 1С:Предприятие версии 7.7 впервые?     | |||
| 6
    
        Wobland 04.12.14✎ 09:36 | 
        а без фото всё равно не взлетит     | |||
| 7
    
        VladZ 04.12.14✎ 09:37 | 
        (0) Эммм....  Код - выкинуть на помойку. Взять букварь по 7.7 и написать красивый и работоспособный код.     | |||
| 8
    
        Spyke 04.12.14✎ 09:44 | 
        Товары.ВыбратьЭлементы();
 Пока Товары.ПолучитьЭлемент() = 1 Цикл СпрЦен.ИспользоватьВладельца(Товары.ТекущийЭлемент); СпрЦен.ВыбратьЭлементы(); Пока СпрЦен.ПолучитьЭлемент()=1 Цикл КонецЦикла; КонецЦикла; | |||
| 9
    
        Spyke 04.12.14✎ 09:45 | 
        Товары.ТекущийЭлемент()     | |||
| 10
    
        Eeelena 04.12.14✎ 09:46 | 
        (8) спасибо, но ругается на ИспользоватьВладельца говорит метод не найден     | |||
| 11
    
        Spyke 04.12.14✎ 09:52 | 
        (10) Спр цен подчиненный справочник номенклатуры?     | |||
| 12
    
        Eeelena 04.12.14✎ 09:54 | 
        (11) да     | |||
| 13
    
        Spyke 04.12.14✎ 09:55 | 
        (12)
 Добавить условие Товары.ЭтоГруппа() = 0 | |||
| 14
    
        Patrio_ O_Muerte 04.12.14✎ 09:57 | 
        Как так... нет фотки... и ты думаешь так ты решишь задачу?     | |||
| 15
    
        Eeelena 04.12.14✎ 10:05 | 
        (13) спасибо большое)))     | |||
| 16
    
        Spyke 04.12.14✎ 10:11 | 
        (15) Работает как надо?     | |||
| 17
    
        Ёпрст гуру 04.12.14✎ 10:11 | 
        Если нужны все цены, то перебор справочника Номенклатура не нужен, совсем.
 Достаточно выборки по справочнику Цены, где владельцем будет Номенклатура. Всё. Не забывать, про разный тип цен, что цена - периодический реквизит и про разные единицы измерения. В общем, до нового года может, успеешь перенести. | |||
| 18
    
        Eeelena 04.12.14✎ 10:18 | 
        (13) А подскажите пожалуйста еще, если я пишу вот так 
 Пока СпрЦен.ПолучитьЭлемент()=1 Цикл Цена=СпрЦен.Цена; ТипЦен=СпрЦен.ТипЦен; КонецЦикла; То Цена и ТипЦен это COMОбъект, а как само значение получить цены и типацен? | |||
| 19
    
        Ёпрст гуру 04.12.14✎ 10:51 | 
        (18) для начала, 
 СпрЦен.ИспользоватьДату(НужнаяДата); Пока СпрЦен.ПолучитьЭлемент()=1 Цикл на счет типа цен - смотри его наименование (аналогично с единицей измерения) | |||
| 20
    
        Eeelena 04.12.14✎ 11:22 | 
        (13) стал почему то ругаться на строку СпрЦен.ИспользоватьВладельца(Товары.ТекущийЭлемент());     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |