7.7 При загрузке из Excel в ПН не затягивает код номенклатуры

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем mass, 15 сен 2014.

  1. TopicStarter Overlay
    mass
    Offline

    mass

    Регистрация:
    4 сен 2014
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    При загрузке в приходную накладную из Екселя товаров загружает наименование и количество, а столбец Код товара, Артикул и цена зак. не затягивает. Помогите пожал. Конфигурация Торговля+Склад для Украины 7.70.014.


    Код:
    Перем Док, Окно, Область, СписПарам, СписРугПодр, Путь, КодТов;
    //******************************************************************************
    
    Процедура ВыбратьФайл()
    сФайл = "";
    сКатал = "";
    Если ФС.ВыбратьФайл(0,сФайл,сКатал,"Выберите файл импорта","Таблицы Excel (*.xls)|*.xls") = 1 Тогда
    ИмяФайла = сКатал+сФайл;
    КонецЕсли;
    КонецПроцедуры
    
    
    
    
    
    
    //******************************************************************************
    Процедура ВыбКаталог()
    Если Путь = "" Тогда
    Путь = Строка(ФС.сКаталог());
    КонецЕсли;
    ФС.ВыбратьКаталог(Путь, "Выбор каталога для выбора файла");
    КонецПроцедуры
    //******************************************************************************
    Процедура Загрузить()
    
    Если ПустоеЗначение(ИмяФайла) = 1 Тогда
    Предупреждение("Не выбран файл-заказ для загрузки!");
    СтатусВозврата(0);
    Возврат;
    КонецЕсли;
    
    Окно = СоздатьОбъект("Excel.Application");
    Если ИмяФайла <> "" Тогда
    //Книга = Окно.WorkBooks.Open(ФС.сКаталог() + "\" + ИмяФайла);
    Книга = Окно.WorkBooks.Open(ИмяФайла);
    //Окно.Visible = 1;
    КонецЕсли;
    
    чКоличествоСтрок = 0;
    Область = Окно.Sheets.Item(1);
    чКоличествоСтрок = Область.UsedRange.Rows.Count();
    
    Товары = СоздатьОбъект("Справочник.Номенклатура");
    
    НомерЗаявки = "";
    НомерЗаявки = СокрЛП(Область.Cells(2, 4).Value);
    Если ПустоеЗначение(НомерЗаявки) = 0 Тогда
    НомерЗаявки = СокрЛП(СтрЗаменить(НомерЗаявки, "Заказ поставщику №", ""));
    НомерЗаявки = СокрЛП(Лев(НомерЗаявки, 11));
    КонецЕсли;
    
    //ПН = СоздатьОбъект("Документ.РасходнаяНакладная");
    ПН = СоздатьОбъект("Документ.ПриходнаяНакладная");
    ПН.Новый();
    ПН.ДатаДок=ТекущаяДата();
    //ПН.Валюта=Спр.НайтиПоНаименованию("руб.");
    //ПН.НАЙТИДОКУМЕНТ(ТекДок1);
    // ПН.Комментарий = НомерЗаявки;
    //ПН.ВидОтгрузки = 11;
    //ПН.НДСвключатьВСтоимость = 1;
    //ПН.Записать();
    
    НачатьТранзакцию();
    Для Стр = 1 По чКоличествоСтрок Цикл
    
    КодТовара = "";
    НаимТов = "";
    ШтрихКод = "";
    Кол = 0;
    
    КодТовара = СокрЛП(Область.Cells(Стр, 8).Value);
    НаимТов = СокрЛП(Область.Cells(Стр, 9).Value);
    ШтрихКод = СокрЛП(Область.Cells(Стр, 10).Value);
    Кол = Число(Область.Cells(Стр, 7).Value);
    
    Если ПустоеЗначение(КодТовара) = 1 Тогда
    Сообщить("Не указан артикул товара " + НаимТов + " " + ШтрихКод, "!!");
    Продолжить;
    КонецЕсли;
    
    Если Товары.НайтиПоКоду(КодТовара,0) = 0 Тогда
    Сообщить("Не найден товар с кодом " + КодТовара + " " + НаимТов + " " + ШтрихКод, "!");
    Продолжить;
    КонецЕсли;
    
    ПН.НоваяСтрока();
    //ПН.Товар = Товары.ТекущийЭлемент();
    ПН.Товар=Товары.ТекущийЭлемент();
    ПН.Количество=Кол;
    ПН.КодТов=Товар.Код;
    ПН.Записать();
    
    КонецЦикла;
    ЗафиксироватьТранзакцию();
    
    ОткрытьФорму(ПН.ТекущийДокумент());
    
    КонецПроцедуры
    upload_2014-9-15_16-27-38.png
    Последнее редактирование: 15 сен 2014
  2. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.429
    Симпатии:
    372
    Баллы:
    104
    код товара в справочнике "Номенклатура" это не есть артикул товара (подправил, не тот кусок кода вставил)
    проверяется наличие кода товара, а выдаёт про отсутствие артикула товара
    Код:
    Если ПустоеЗначение(КодТовара) = 1 Тогда
    Сообщить("Не указан артикул товара " + НаимТов + " " + ШтрихКод, "!!");
    Продолжить;
    КонецЕсли;
    


    ну и главное, где образец? что откуда берётся и каково оно

    PS
    и кодом оформляйте плиз
    upload_2014-9-15_21-22-5.png
    Последнее редактирование: 16 сен 2014
  3. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    так у вас здесь не заполняется

    Код:
    ПН.НоваяСтрока();
    //ну и где заполнение реквизитов?
    //ПН.Товар = Товары.ТекущийЭлемент();
    ПН.Товар=Товары.ТекущийЭлемент();
    ПН.Количество=Кол;
    ПН.КодТов=Товар.Код;
    ПН.Записать();
    
  4. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.429
    Симпатии:
    372
    Баллы:
    104
    и не заполняется и не то заполняется
    Код:
    ПН.НоваяСтрока();
    //ПН.Товар = Товары.ТекущийЭлемент();
    ПН.Товар=Товары.ТекущийЭлемент();
    ПН.Количество=Кол;
    ПН.КодТов=Товар.Код;
    ПН.Записать();
    
    тут
    Код:
    ПН.КодТов=Товар.Код;
    а выше по коду КодТовара получается из
    Код:
    КодТовара = СокрЛП(Область.Cells(Стр, 8).Value);
  5. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    А цена должна заполняться автоматом с учетом типа цены или экспортироваться?
  6. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.429
    Симпатии:
    372
    Баллы:
    104
    из текста кода в №1 вроде как бы экспортироваться по идее
  7. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Не верен...
    1) В коде нет
    2) на скринет тип цен тоже не указан
  8. TopicStarter Overlay
    mass
    Offline

    mass

    Регистрация:
    4 сен 2014
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    Не получается заполнить реквизит шапки "Тип цен" (надо закупочная), все что можно испробовал:
    Код:
       ПН = СоздатьОбъект("Документ.ПриходнаяНакладная");
       ПН.Новый();
       ПН.ДатаДок=ТекущаяДата();
       ПН.КатегорияЦен=Перечисление.КатегорииЦен.Закупочная;
       ПН.Валюта=Константа.БазоваяВалюта;
       ПН.Курс=1;
       ПН.Дата_курса=ТекущаяДата();
    
    upload_2014-9-17_11-46-13.png
    upload_2014-9-17_11-50-37.png
    помогите
  9. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Используйте метод объекта НайтиПоНаименованию или создайте реквизит на форме обработки загрузки
  10. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.429
    Симпатии:
    372
    Баллы:
    104
    на скринах - цены в справочнике
    в коде - в перечислении
    ?
  11. TopicStarter Overlay
    mass
    Offline

    mass

    Регистрация:
    4 сен 2014
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    Попробовал. Все равно не заполняет
    Код:
       КатЦен = СоздатьОбъект("Справочник.КатегорииЦен");
       ПН = СоздатьОбъект("Документ.ПриходнаяНакладная");
       ПН.Новый();
       ПН.ДатаДок=ТекущаяДата();
       ПН.КатегорияЦен=КатЦен.НайтиПоНаименованию("Закупочная",0);
  12. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    А так
    ПН.КатегорияЦен=КатЦен.НайтиПоНаименованию("Закупочная",0,1);
  13. TopicStarter Overlay
    mass
    Offline

    mass

    Регистрация:
    4 сен 2014
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    И так тоже не получается
  14. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.429
    Симпатии:
    372
    Баллы:
    104
    Код:
    НайтиПоНаименованию(<?>,,);
    Синтаксис:
    НайтиПоНаименованию(<Наименование>,<Режим>,<ФлагПоиска>)
    Назначение:
    Найти элемент справочника по наименованию.
    Возвращает: 1 - если действие выполнено;
    0 - если действие не выполнено (элемент не найден).
    Параметры:
    <Наименование> - строка с наименованием искомого элемента справочника,
    <Режим> - необязательный параметр. Число: 1 - поиск внутри установленного подчинения (родителя); 0 - поиск во всем справочнике вне зависимости от родителя. Значение по умолчанию - 1.
    <ФлагПоиска> - необязательный параметр. Число: 1 - найти точное соответствие наименования; 0 - найти наименование по первым символам. Значение по умолчанию - 0.
    Замечание:
    Метод  можно использовать только для объектов, созданных функцией СоздатьОбъект.
    
    обратите внимание!!!!
    Метод можно использовать только для объектов, созданных функцией СоздатьОбъект.
  15. TopicStarter Overlay
    mass
    Offline

    mass

    Регистрация:
    4 сен 2014
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    обратите внимание!!!!
    Метод можно использовать только для объектов, созданных функцией СоздатьОбъект.

    Так вроде создал:
    КатЦен = СоздатьОбъект("Справочник.КатегорииЦен");
    ПН.КатегорияЦен=КатЦен.НайтиПоНаименованию("Закупочная",0);
  16. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.429
    Симпатии:
    372
    Баллы:
    104
    Код:
       КатЦен = СоздатьОбъект("Справочник.КатегорииЦен");
       ПН = СоздатьОбъект("Документ.ПриходнаяНакладная");
       ПН.Новый();
       ПН.ДатаДок=ТекущаяДата();
       КатЦен.НайтиПоНаименованию("Закупочная",0); //это если без проверки результата поиска
       ПН.КатегорияЦен=КатЦен.ТекущийЭлемент();
    
    mass нравится это.
  17. TopicStarter Overlay
    mass
    Offline

    mass

    Регистрация:
    4 сен 2014
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    Ура! Получилось. Спс
  18. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Точно.. К вечеру тупанул про текущийЭлемент
  19. TopicStarter Overlay
    mass
    Offline

    mass

    Регистрация:
    4 сен 2014
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    Не затягивается текущая закупочная цена товара в табличную часть ПН
    Код:
    чКоличествоСтрок = Область.UsedRange.Rows.Count();
       Товары = СоздатьОбъект("Справочник.Номенклатура");
       Цен = СоздатьОбъект("Справочник.Цены");
       НачатьТранзакцию();
       Для Стр = 1 По чКоличествоСтрок Цикл
         КодТовара = "";
         Кол=0;
    
         КодТовара=СокрЛП(Область.Cells(Стр, 1).Value); //загрузка кода из 1-го столбца ексель
         Кол=Число(Область.Cells(Стр, 2).Value);        //загрузка количества из 2-го столбца ексель
         Если ПустоеЗначение(КодТовара) = 1 Тогда
           Сообщить("Не указан код товара " + КодТовара, "!!");
           Продолжить;
         КонецЕсли;
    
         Если Товары.НайтиПоКоду(КодТовара,0) = 0 Тогда
           Сообщить("Не найден товар с кодом " + КодТовара + " " + "!");
           Продолжить;
         КонецЕсли;
    
         ПН.НоваяСтрока();
         ПН.Товар=Товары.ТекущийЭлемент();
         ПН.Количество=Кол;
         ПН.КодТов=Товары.Код;
        ПН.Код=Товары.Артикул;
        ПН.ЦенаБезНДС=Цен.Цена;
        ПН.Записать();
      
       КонецЦикла;
       ЗафиксироватьТранзакцию();
       ОткрытьФорму(ПН.ТекущийДокумент());
    Что то не так
    Последнее редактирование: 17 сен 2014
  20. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Оформляйте код тегами code

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