1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Помогите пожалуста с выгрузкой прайса

Тема в разделе "Базы данных и администрирование", создана пользователем Janna26, 5 май 2010.

  1. Janna26

    Janna26 Гость

    Репутация:
    0
    На работе дали задание. не могу ни как придумать как его сделать. Есть прайс, есть справочник номенклатуры. В принципе все просто, а на самом деле не так. Прайсы бывают разные. оператор будет над каждой колонкой в прайсе ставить определенную букву. (пример Код = A артикул = B и т.д) и надо сделать внешнюю обработку которая будет по этим буквам опеределять в какой колонке что находится, потом сравнивать значениее со справочником и заносить цены в справочник.
     
  2. unknown181538

    unknown181538 НеГуру

    Репутация:
    0
    Регистрация:
    28 дек 2008
    Сообщения:
    1.417
    Симпатии:
    0
    А в чем проблема-то? Найти пример загрузки из формата, который вы, кстати, не указали?)
     
  3. Janna26

    Janna26 Гость

    Репутация:
    0
    Прайс экселевский конфигурация управление торговлей 10.3 Не могу сделать поиск пл файлу в экселе. Надо брать код из основной панели справочника и сравнивать его с экселевким файлом а потом если код савподает то из этой же строчки брать цену товара и заносить ее в справочник.
     
  4. Спартак

    Спартак Well-Known Member

    Репутация:
    0
    Регистрация:
    2 май 2009
    Сообщения:
    69
    Симпатии:
    0
  5. Darlock

    Darlock Well-Known Member

    Репутация:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    560
    Симпатии:
    1
    Должен быть объект метаданных в котором будет храниться соответствие колонок файла и полей 1С. желательно табличного вида (ПВХ, Регистр сведений и т.п.). Сам механизм и пример загрузки вам уже предложили.
     
  6. Janna26

    Janna26 Гость

    Репутация:
    0
    Я наверное точно блондинка нечего в голову нелезет. Вроде все форму сделала с экселя загрузила функцию расчета цены сделала а как связать со справочником немогу((( кто нить может выложить пример функции с поиском по экселю?

    Добавлено: Как говорится не бери в голову бери в рот))))
     
  7. vitfil

    vitfil IT-интегратор

    Репутация:
    0
    Регистрация:
    2 апр 2004
    Сообщения:
    2.062
    Симпатии:
    0
    Отсюда, пожалуйста, поподробней.
     
  8. Janna26

    Janna26 Гость

    Репутация:
    0
    Это шутка) сижу уже 2 день над этой обработькай и нечего придумать немогу(
     
  9. vitfil

    vitfil IT-интегратор

    Репутация:
    0
    Регистрация:
    2 апр 2004
    Сообщения:
    2.062
    Симпатии:
    0
    Измором берете?
     
  10. Janna26

    Janna26 Гость

    Репутация:
    0
    vitfil
    А ты шутник. Да вот сижу и думаю, что она сама напишется.
     
  11. Darlock

    Darlock Well-Known Member

    Репутация:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    560
    Симпатии:
    1
    Место не правильное, видимо.(с)

    Я сделал бы так:

    Код:
    Процедура КнопкаВыполнитьНажатие(Кнопка)
    xlLastCell = 11;
    НомерЛистаExcel = 1;
    
    ВыбФайл = Новый Файл(ИмяФайла);
    Если НЕ ВыбФайл.Существует() Тогда
    Сообщить("Файл не существует!");
    КонецЕсли;
    
    Попытка
    Excel = Новый COMОбъект("Excel.Application");
    Excel.WorkBooks.Open(ИмяФайла);
    Состояние("Обработка файла Microsoft Excel...");
    ExcelЛист = Excel.Sheets(НомерЛистаExcel);
    Исключение
    Сообщить("Ошибка. Возможно неверно указан номер листа книги Excel.");
    КонецПопытки;
    
    ActiveCell = Excel.ActiveCell.SpecialCells(xlLastCell);
    RowCount = ActiveCell.Row;
    ColumnCount = ActiveCell.Column;
    
    ТЗ = Новый ТаблицаЗначений;
    Для Column = 1 По ColumnCount Цикл
    Тз.Колонки.Добавить("Колонка" + Column);
    КонецЦикла;
    
    
    Для Row = 1 По RowCount Цикл
    НоваяСтрока = Тз.Добавить();
    
    Для Column = 1 По ColumnCount Цикл
    НоваяСтрока["Колонка" + Column] = ExcelЛист.Cells(Row,Column).Value;
    КонецЦикла;
    
    КонецЦикла;
    
    Excel.WorkBooks.Close();
    Excel = 0;
    
    
    ДокОбъект = Докссылка.ПолучитьОбъект();
    
    Для Каждого ТекущаяСтрока Из Тз Цикл
    
    Наименование = ТекущаяСтрока["Колонка12"];
    Артикул = СокрЛП(СтрЗаменить(Строка(ТекущаяСтрока["Колонка11"])," ",""));
    НомерВхДок = ТекущаяСтрока["Колонка9"];
    Количество = ТекущаяСтрока["Колонка13"];
    ЕдИзмерения = ТекущаяСтрока["Колонка14"];
    Цена = ТекущаяСтрока["Колонка15"];
    Сумма = ТекущаяСтрока["Колонка16"];
    СтавкаНДС = ТекущаяСтрока["Колонка17"];
    СуммаНДС = ТекущаяСтрока["Колонка18"];
    Всего = ТекущаяСтрока["Колонка19"];
    СтранаГТД = ТекущаяСтрока["Колонка21"];
    ГТДТовара = ТекущаяСтрока["Колонка22"];
    
    Если СокрЛП(ДокОбъект.ВхДокНомер) = "" Тогда
    ДокОбъект.ВхДокНомер = СтрЗаменить(СокрЛП(НомерВхДок)," ","");
    КонецЕсли;
    
    СпрЭлемент = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул",СокрЛП(Артикул));
    Если СокрЛП(Артикул) <> "" Тогда 
    Если СпрЭлемент = Справочники.Номенклатура.ПустаяСсылка() Тогда
    СпрЭлемент = Справочники.Номенклатура.СоздатьЭлемент();
    СпрЭлемент.УстановитьНовыйКод();
    СпрЭлемент.Родитель = СпрРодитель;
    СпрЭлемент.ОбработкаЗаполнения("");
    СпрЭлемент.Наименование = Наименование;
    СпрЭлемент.ОсновнаяЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт");
    СпрЭлемент.БазоваяЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.шт;
    СпрЭлемент.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.Товар;
    СпрЭлемент.ТипНоменклатуры = Справочники.ТипыНоменклатуры.Штучный;
    
    СпрЭлемент.Артикул = Артикул;
    СпрЭлемент.Записать();
    СпрЭлемент = СпрЭлемент.Ссылка;
    Сообщить("Создан новый элемент: " + Наименование + ", " + Артикул);
    КонецЕсли;
    КолВо = Число(Количество);
    НоваяСтрока = ДокОбъект.Товары.Найти(СпрЭлемент, "Номенклатура");
    Если НоваяСтрока = Неопределено Тогда
    НоваяСтрока = ДокОбъект.Товары.Добавить();
    НоваяСтрока.Номенклатура = СпрЭлемент;
    НоваяСтрока.Количество = Колво;
    НоваяСтрока.КоличествоБазовое = Колво;
    НоваяСтрока.ЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт");
    НоваяСтрока.Коэффициент = 1;
    НоваяСтрока.Цена = Число(СтрЗаменить(Цена,".",""));
    НоваяСтрока.Сумма = Число(СтрЗаменить(Сумма,".",""));
    НоваяСтрока.СуммаНДС = Число(СтрЗаменить(СуммаНДС,".",""));
    НоваяСтрока.СтавкаНДС = Справочники.СтавкиНДС.ОсновнаяСтавкаНДС;
    стрГТД = Справочники.ГТД.НайтиПоНаименованию(СокрЛП(ГТДТовара));
    Если стрГТД = Справочники.ГТД.ПустаяСсылка() Тогда
    стрГТД = Справочники.ГТД.СоздатьЭлемент();
    стрГТД.УстановитьНовыйКод();
    стрГТД.Наименование = СокрЛП(ГТДТовара);
    стрГТД.Страна = Справочники.КлассификаторСтранМира.НайтиПоНаименованию(СокрЛП(СтранаГТД));
    стрГТД.Записать();
    стрГТД = стрГТД.Ссылка;
    КонецЕсли;
    
    НоваяСтрока.ГТД = стрГТД;
    
    НоваяСтрока.СуммаВсего = Число(СтрЗаменить(Всего,".",""));
    Иначе
    НоваяСтрока.Количество = НоваяСтрока.Количество + Колво;
    НоваяСтрока.КоличествоБазовое = НоваяСтрока.КоличествоБазовое + Колво;
    НоваяСтрока.СуммаВсего = НоваяСтрока.СуммаВсего + Число(СтрЗаменить(Всего,".",""));
    
    НоваяСтрока.Сумма = НоваяСтрока.Сумма + Число(СтрЗаменить(Сумма,".",""));
    НоваяСтрока.Цена = ?(НоваяСтрока.Количество = 0,0,НоваяСтрока.Сумма / НоваяСтрока.Количество);
    НоваяСтрока.СуммаНДС = НоваяСтрока.СуммаНДС + Число(СтрЗаменить(СуммаНДС,".",""));
    КонецЕсли;		
    Состояние(Наименование);
    Иначе
    Продолжить;
    КонецЕсли;
    
    КонецЦикла;
    
    ДокОбъект.ПолучитьФорму().Открыть();
     
  12. unknown181538

    unknown181538 НеГуру

    Репутация:
    0
    Регистрация:
    28 дек 2008
    Сообщения:
    1.417
    Симпатии:
    0
    А вот цены обычно заносят не в справочник, а в регистр сведений.
     
  13. Buster

    Buster Гость

    Репутация:
    0
    Ну человек, который будет заносить буквы А и Б, указывая в каких колонках находится артикул или код, будет делать это например в строке перед таблицей, а значит в чем проблема поиска?
    Например:

    Код:
    //Вырезка из кода Darlock
    
    
    Для Column = 1 По ColumnCount Цикл
    Если ExcelЛист.Cells(ПерваяСтрокаГдеУказываетсяАилиБ,Column).Value = "А" тогда
    КолонкаСКодом = Column;
    ИначеЕсли ExcelЛист.Cells(ПерваяСтрокаГдеУказываетсяАилиБ,Column).Value = "Б" тогда
    КолонкаСАртикулом = Column;
    КонецЕсли;
    КонецЦикла;
    А далее можно прочитать все остальные строки из файла, где уже находятся сами записи цены номенклатуры и осуществлять поиск без проблем.
     
Загрузка...
Похожие Темы - Помогите пожалуста выгрузкой
  1. Tayrus
    Ответов:
    2
    Просмотров:
    31
  2. KanycTa
    Ответов:
    1
    Просмотров:
    50
  3. Samyrro
    Ответов:
    1
    Просмотров:
    56
  4. Tayrus
    Ответов:
    0
    Просмотров:
    49
  5. bronnn
    Ответов:
    0
    Просмотров:
    110

Поделиться этой страницей