8.х УТ Перенос номенклатуры из Excel

Тема в разделе ""1С:Управление торговлей УТ"", создана пользователем Nutka, 2 сен 2010.

  1. TopicStarter Overlay
    Nutka
    Offline

    Nutka Опытный в 1С

    Регистрация:
    5 авг 2010
    Сообщения:
    52
    Симпатии:
    0
    Баллы:
    26
    Переношу из файла Excel новую номенклатуру, стандартной обработкой.
    Все данные переносятся нормально, кроме:

    1) Ед.изм. для отчетов - никак не хочет, порывшись в инете, пришла к выводу, что это нормально и ее надо ручками подправлять, заходя в каждую карточку.

    2) Не могу понять, как перенести свойства товара!
  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.554
    Симпатии:
    716
    Баллы:
    204
    ээээ....со свойствами - либо поля делать в какой-то структуре, либо создавать на каждую номенклатуру файлик со списком......не знаю, уж, че быстрее и проще будет.

    про единицы измерения: у номенклатуры есть реквизит - ЕдиницаДляОтчетов.
  3. TopicStarter Overlay
    Nutka
    Offline

    Nutka Опытный в 1С

    Регистрация:
    5 авг 2010
    Сообщения:
    52
    Симпатии:
    0
    Баллы:
    26
    ЕдиницаДляОтчетов - я прописываю во время выгрузки из Excel,

    Посмотреть вложение 5220

    а ничего не получается!

    Вложения:

    • Clipboard.jpg
      Clipboard.jpg
      Размер файла:
      163 КБ
      Просмотров:
      299
  4. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.554
    Симпатии:
    716
    Баллы:
    204
    Я думал, вы своими силами переносите номенклатуру.....С данной обработкой пока не сталкивался, не знаю, как и что в ней можно и нужно делать....Кто знает - подскажут....
  5. mialord
    Offline

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

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Здраствуйте!
    С данной обработкой, с диска ИТС, у меня тоже не получилось единицы измерения перетащить, по сему я плюнул на всё это мероприятие и писал обработку. На форуме я выкладывал обработку, которая экспортирует лист екселя в таблицу значений, ну, а от туда всё очень просто программно перекинуть.
  6. Пеппи
    Offline

    Пеппи Опытный в 1С

    Регистрация:
    26 мар 2009
    Сообщения:
    103
    Симпатии:
    0
    Баллы:
    26
  7. TopicStarter Overlay
    Nutka
    Offline

    Nutka Опытный в 1С

    Регистрация:
    5 авг 2010
    Сообщения:
    52
    Симпатии:
    0
    Баллы:
    26
    да, именно по этим статьям я и перекидывала
    но с единицей для отчетов не получается - выскакивает ошибка -
    "Ошибка компиляции при вычислении выражения или выполнении фрагмента кода"

    это я копировала вот это из статьи -

    СсылкаНоменклатуры = Справочники.Номенклатура.НайтиПоНаименованию(ТекущиеДанные["Наименование"]);
    //© Компания "Онлайн" 2010, www.online-ufa.ru БазоваяЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.НайтиПоКоду(796);
    ТекСпр=Справочники.ЕдиницыИзмерения.НайтиПоРеквизиту("
    ЕдиницаПоКлассификатору",БазоваяЕдиницаИзмерения,,СсылкаНоменклатуры);
    Если ТекСпр.Пустая() Тогда НайденнаяЕдиницаОбъект = Справочники.ЕдиницыИзмерения.СоздатьЭлемент();
    НайденнаяЕдиницаОбъект.Наименование = СокрЛП(БазоваяЕдиницаИзмерения);
    НайденнаяЕдиницаОбъект.ЕдиницаПоКлассификатору = БазоваяЕдиницаИзмерения;
    НайденнаяЕдиницаОбъект.Коэффициент = 1;
    НайденнаяЕдиницаОбъект.Владелец = СсылкаНоменклатуры;
    Попытка НайденнаяЕдиницаОбъект.Записать();
    Результат = НайденнаяЕдиницаОбъект.Ссылка;
    Исключение Сообщить("Не удалось записать");
    КонецПопытки;
    Иначе Результат =ТекСпр.Ссылка;
    КонецЕсли;

    не знаю, мож в коде ошибка, я кода не знаю, вообще программировать не умею...

    mialord - ведь эта обработка тоже перекидывает данные из экселя в таблицу значений, но вот из таблицы некорректно, получается, экспортирует...
    А свойства ваша обработка может перекинуть из таблицы значений в номенклатуру?
  8. x_under
    Offline

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

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    Чтобы автоматом создать единицы в этой обработке, необходимо в событие "При записи" добавить следующий код:
    Код:
    Объект.Записать();
    
    // поиск соответствующей единицы измерения
    ЕдиницаИзмеренияНоменклатуры = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию(Объект.БазоваяЕдиницаИзмерения.Наименование,,,Объект.Ссылка);
    // создание единицы измерения
    Если ЕдиницаИзмеренияНоменклатуры.Пустая() Тогда
    
    ЕдиницаИзмеренияНоменклатурыОбъект = Справочники.ЕдиницыИзмерения.СоздатьЭлемент();
    ЕдиницаИзмеренияНоменклатурыОбъект.Владелец                 = Объект.Ссылка;
    ЕдиницаИзмеренияНоменклатурыОбъект.Наименование             = Объект.БазоваяЕдиницаИзмерения.Наименование;
    ЕдиницаИзмеренияНоменклатурыОбъект.ЕдиницаПоКлассификатору     = Объект.БазоваяЕдиницаИзмерения;
    ЕдиницаИзмеренияНоменклатурыОбъект.Коэффициент                 = 1;
    
    ЕдиницаИзмеренияНоменклатурыОбъект.Записать();
    
    ЕдиницаИзмеренияНоменклатуры = ЕдиницаИзмеренияНоменклатурыОбъект.Ссылка;
    
    КонецЕсли; 
    
    // установка соответствующих единиц измерения
    Объект.ЕдиницаХраненияОстатков     = ЕдиницаИзмеренияНоменклатуры;
    Объект.ЕдиницаДляОтчетов         = ЕдиницаИзмеренияНоменклатуры;
    
    
    По аналогии можно написать и создание свойств номенклатуры
  9. Tamerlan777
    Offline

    Tamerlan777

    Регистрация:
    9 сен 2010
    Сообщения:
    16
    Симпатии:
    0
    Баллы:
    1

    Процедура КнопкаВыполнитьНажатие(Кнопка)
    // Вставить содержимое обработчика.
    conexcel= ПолучитьCOMОбъект("C:\номен.xls");
    спр=справочники.Номенклатура;
    i=1;

    пока СтрДлина(conexcel.Sheets(1).Cells(i,1).Value)>0 цикл
    новыйэлемент=спр.СоздатьЭлемент();
    z=conexcel.Sheets(1).Cells(i,1).Value;
    новыйэлемент.БазоваяЕдиницаИзмерения=ед;
    новыйэлемент.ЕдиницаХраненияОстатков=ед;
    новыйэлемент.ЕдиницаИзмеренияМест=ед;
    новыйэлемент.ЕдиницаДляОтчетов=ед;
    новыйэлемент.ВидНоменклатуры=вид;
    новыйэлемент.Наименование=z;
    новыйэлемент.ПолноеНаименование=z;
    новыйэлемент.Родитель=справочники.Номенклатура.НайтиПоКоду(кодГруппы) ;
    новыйэлемент.Записать();
    i=i+1;
    конеццикла

    КонецПроцедуры


    Полное наименование должно быть обязательно!!! после этого он ед изм нормально записывает.
  10. 1C8
    Offline

    1C8 Опытный в 1С

    Регистрация:
    20 янв 2009
    Сообщения:
    216
    Симпатии:
    0
    Баллы:
    26
    Вот еще сторонняя бесплатная разработка. Не первый раз переношу и номенклатуру и остатки с ТИС...
    Пользуйтесь на здоровье...
    Прилагаю еще и инструкцию...

    Вложения:

  11. BuhRu
    Offline

    BuhRu Новичок в 1С

    Регистрация:
    25 июн 2010
    Сообщения:
    48
    Симпатии:
    3
    Баллы:
    4
    В тексте для копирования ошибка
    вставьте переход строки после "www.online-ufa.ru" или "//© Компания "Онлайн" 2010, www.online-ufa.ru" удалите вообще
    иначе получается всё что в строке с символами "//" стало комментарием и не работает

    текст должен будет выглядеть следующим образом
    ------------------------

    СсылкаНоменклатуры = Справочники.Номенклатура.НайтиПоНаименованию(ТекущиеДанные["Наименование"]);
    //© Компания "Онлайн" 2010, www.online-ufa.ru
    БазоваяЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.НайтиПоКоду(796);
    ТекСпр=Справочники.ЕдиницыИзмерения.НайтиПоРеквизиту("
    ЕдиницаПоКлассификатору",БазоваяЕдиницаИзмерения,,СсылкаНоменклатуры);
    Если ТекСпр.Пустая() Тогда НайденнаяЕдиницаОбъект = Справочники.ЕдиницыИзмерения.СоздатьЭлемент();
    НайденнаяЕдиницаОбъект.Наименование = СокрЛП(БазоваяЕдиницаИзмерения);
    НайденнаяЕдиницаОбъект.ЕдиницаПоКлассификатору = БазоваяЕдиницаИзмерения;
    НайденнаяЕдиницаОбъект.Коэффициент = 1;
    НайденнаяЕдиницаОбъект.Владелец = СсылкаНоменклатуры;
    Попытка НайденнаяЕдиницаОбъект.Записать();
    Результат = НайденнаяЕдиницаОбъект.Ссылка;
    Исключение Сообщить("Не удалось записать");
    КонецПопытки;
    Иначе Результат =ТекСпр.Ссылка;
    КонецЕсли;
    ------------------------------
    проверил, так работает )))

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