|
Установка цен номенклатуры из excel | ☑ | ||
---|---|---|---|---|
0
spapin87
02.12.13
✎
10:05
|
Доброе утро. Подскажите, загружаю данные из excel. Номенклатура добавляется, но новую цену никак не могу прикрутить. То ли надо получать идентификатор типа цен не пойму никак.
&НаКлиенте Процедура ОткрытьФайл(Команда) ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); ДиалогОткрытияФайла.ПолноеИмяФайла = ""; ДиалогОткрытияФайла.Фильтр = "Файл Excel(*.xls)|*.xls|Файл Excel(*.xlsx)|*.xlsx"; ДиалогОткрытияФайла.МножественныйВыбор = Ложь; ДиалогОткрытияФайла.Заголовок = "Выберите файл Excel для загрузки"; Если ДиалогОткрытияФайла.Выбрать() Тогда ЗагрузитьДанныеИзФайла(СокрЛП(ДиалогОткрытияФайла.ПолноеИмяФайла)); КонецЕсли; КонецПроцедуры &НаКлиенте Процедура ЗагрузитьДанныеИзФайла(ПутьКФайлу) //Открываем xls файл Попытка Excel = Новый COMОбъект("Excel.Application"); WB = Excel.Workbooks.Open(ПутьКФайлу); WS = WB.Worksheets(1); //указываем номер листа - 1 arr = WS.UsedRange.Value; //передаём таблицу в переменную WB.Close(0); Исключение Предупреждение("Внимание! Файл не открыт."+Символы.ПС+"Попробуйте открыть и пересохранить данный файл программой Excel."); Возврат; КонецПопытки; //Узнаём данные выходные данные об листе ексель МассивКолонок = arr.Выгрузить(); //Выгружаем таблицу в массив всегоСтрок = (МассивКолонок.Получить(0).Количество())-1; Объект.Товары.Очистить(); НомерСтроки = 2; Для строкаТП = 1 По всегоСтрок Цикл //Работаем со строкой Артикул = СокрЛП(Формат(МассивКолонок.Получить(0).Получить(строкаТП),"ЧГ=0")); Ном = НайтиНоменклатуру(Артикул); Если Ном = "" Тогда Сообщить("Не нашли номенклатуру" + Артикул); Иначе //ТабличнаВидаЦен = Объект.ВидыЦен.Добавить(); //ТабличнаВидаЦен.ВидЦены = ВидЦены; НовСтрока = ДеревоЦен.ПолучитьЭлементы().Добавить(); //НовСтрока.ПолучитьИдентификатор(); НовСтрока.Номенклатура = Ном; //ТаблицаЦен = Объект.Товары.Добавить(); // ТаблицаЦен.Номенклатура = Ном; // //ТаблицаЦен.ВидЦены = ВидЦены; // //ТаблицаЦен.Цена = 300; КонецЕсли; КонецЦикла; КонецПроцедуры |
|||
1
dk
02.12.13
✎
10:13
|
проблема-то в чем
как хранить данные о цене в 1с? возьми любой готовый документ и погляди что где как хранится? |
|||
2
spapin87
02.12.13
✎
10:19
|
(2) Как добавить в НовСтрока цену в уже открытом документе Установка цен номенклатуры. Номенклатуру я добавляю только ту, которая есть в базе и не создаю новую если нет ее, но цену в новую строку не могу прикрутить цену
|
|||
3
spapin87
02.12.13
✎
10:32
|
Может пример у кого есть?
|
|||
4
razlagator
02.12.13
✎
10:36
|
(3) в документе установки цен две ТЧ, Товары и ТипыЦен, в каждой ТЧ есть реквизит ТипЦены, вот эти реквизиты в обоиз ТЧ должны быть!
|
|||
5
razlagator
02.12.13
✎
10:36
|
(4)обоих*
|
|||
6
FIXXXL
02.12.13
✎
12:19
|
(2) конфа какая?
попробуй док создать, правильно заполни, и уже потом открывай его форму |
|||
7
spapin87
02.12.13
✎
12:23
|
(7)Управление торговлей, редакция 11.1 (11.1.2.9)
Так я уже в форме документа заполняю ТЧ. |
|||
8
FIXXXL
02.12.13
✎
12:31
|
(7) не знаю как в 11, в 10 ТЧ документа и ТЗ на форме документа - разные вещи и заполнение нетиповое идет...
|
|||
9
spapin87
02.12.13
✎
12:33
|
В 10 проще
|
|||
10
spapin87
02.12.13
✎
12:56
|
В документе добавляю все в ТЗ и потом циклом вытаскиваю все В ТЧ товары, но ничего не добавляется, объясните глупому что не так
&НаСервере Процедура ЗагрузинТовары(ПутьКФайлу) Попытка Excel = Новый COMОбъект("Excel.Application"); WB = Excel.Workbooks.Open(ПутьКФайлу); WS = WB.Worksheets(1); //указываем номер листа - 1 arr = WS.UsedRange.Value; //передаём таблицу в переменную WB.Close(0); Исключение //Предупреждение("Внимание! Файл не открыт."+Символы.ПС+"Попробуйте открыть и пересохранить данный файл программой Excel."); Возврат; КонецПопытки; //Узнаём данные выходные данные об листе ексель МассивКолонок = arr.Выгрузить(); //Выгружаем таблицу в массив всегоСтрок = (МассивКолонок.Получить(0).Количество())-1; Объект.Товары.Очистить(); ТЗ_Excel = Новый ТаблицаЗначений; ТЗ_Excel.Колонки.Добавить("Артикул"); ТЗ_Excel.Колонки.Добавить("Цена"); НомерСтроки = 2; Для строкаТП = 1 По всегоСтрок Цикл //Работаем со строкой НоваяСтрока = ТЗ_Excel.Добавить(); НоваяСтрока.Артикул = СокрЛП(Формат(МассивКолонок.Получить(0).Получить(строкаТП),"ЧГ=0")); НоваяСтрока.Цена = СокрЛП(МассивКолонок.Получить(2).Получить(строкаТП)); КонецЦикла; Для Каждого Строка_Excel Из ТЗ_Excel Цикл //ОбработкаПрерыванияПользователя(); Артикул = Строка_Excel.Артикул; НоменклатураСсылка =Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", Артикул); Если НоменклатураСсылка.Пустая() Тогда Сообщить("Артикул не найден в справочнике ""Номенклатура"" " + Артикул + " Строка не подгружена"); Продолжить; КонецЕсли; Цена = Строка_Excel.Цена; НоваяСтрока = Объект.Товары.Добавить(); НоваяСтрока.Номенклатура=НоменклатураСсылка; НоваяСтрока.цена = Цена; КонецЦикла; КонецПроцедуры |
|||
11
spapin87
02.12.13
✎
13:23
|
Если например сделать так :
НоваяСтрока = ДеревоЦен.ПолучитьЭлементы().Добавить(); //НоваяСтрока = Объект.Товары.Добавить(); НоваяСтрока.Номенклатура = НоменклатураСсылка; Добавляются позиции, но там цены в виде СтараяЦенаВидЦены8e381db0573711e3b078001e677b0fcb (Это выражение) и цену как к этому присвоить не знаю. |
|||
12
andr_andrey
02.12.13
✎
19:52
|
(10) Кто такой "Объект" в Объект.Товары.Добавить()?
|
|||
13
FIXXXL
04.12.13
✎
20:20
|
Объект
видимо заполнение ТЧ из внешней обработки |
|||
14
ProProg
04.12.13
✎
20:22
|
УТ11?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |