#0
by bijela
Даже не знаю, как обратиться. Поэтому как говорил товарищ О. Бендер: ближе к телу. Необходимо данные из таблиц Excel загрузить в табличную часть приходной накладной.Идея стара как мир. Нашел всем известную внешнюю обработку, даже книжку Дубянского прикупил по случаю. Сделать наскоком, убрав и заменив мне понятные места, не получилось. Видно запутался с реквизитами и идентификаторами. Поэтому ниже привожу код обработки и задам несколько вопросов. Заранее прошу терпения, т.к. в этом вопросе я «бей ведро». Поэтому «популярно для невежд». Функция ПолучитьЗначение(Excel,y,x) Стр=(СокрЛП(Строка(ПолучитьЗначение(Excel,i,1)))); Если ПустаяСтрока(Стр)=1 Then Как написано в книжке, первоначально в модуле добавил переменные Перем ИмяФайла, ИмяКаталога; Затем: 1.("Справочник.Номенклатура") заменил на ("Справочник.ТМЦ"), т.к. мой справочник где находится номенклатура имеет Идентификатор ТМЦ. 2. i=7 заменил на i=1, т.к. решил что все будет начинаться с первой строки. 3. дошел до строки кода Тов=Спр.Наименование; - наморщил репу, не знаю что делать дальше. Хелп.
#1
by G-Re
Что-то не совсем понятно, в коде, насколько я понял, из Ексел берутся данные, харакиеризующие некую запись справочника ТМЦ, на основании которых эта запись и создается. В теме же указана ТЧ документа. Так в чем же вопрос или проблема? Общий алгоритм примерно такой. 1. Создается новый документ(через СоздатьОбъект). (или в документе на форме, например, должна быть Кнопка типа "Создать ТЧ из Ексел" или что-то подобное). 2. В цикле считываются строки из Ексел, на основании значений ячеек которых формируется ТЧ., то есть что-то типа Цикл по строкам Ексел где стр - номер строки в Ексел-файле НомРх - номер ячейки Ексел, соответствующей РеквизитСтроких ТЧ документа. Где-то так.
#2
by bijela
сорри, сам дурак. это не внешняя обработка, а кусок который вставляется модуль форма-документа. в диалоге есть кнопка (Формула Загрузкапо которой происходит загрузка выбранного фай
#4
by bijela
сорри, сам дурак. это не внешняя обработка, а кусок кода, который вставляется в модуль формы-документа ПриходнаяНакладная. в диалоге сделана кнопка Загрузка, по которой происходит выбор и должна происходить загрузка Excel файла.
#5
by G-Re
Да, дополнение к . Если в Екселе в ячейке нечто из справочника, например Наименование, то, конечно, нужно сначала найти этот элемент по наименованию или создать новый, если не найден и только потом присвоить этот элемент реквизиту ТЧ, например, так
#6
by bijela
Извините, но взятый за основу кусок работает судя по отзывам, а я пытаюсь его переделать под таблицу Excel с двумя столбцами: первый номенклатура второй количество. После Тов=Спр.Наименование; убрал все, что не касается количества после выбора и загрузки файла выдает сообщение Cell=Excel.Cells(y,x); {Документ.ПриходнаяНакладная.Форма.Модуль}: Значение не представляет агрегатный объект (Cells)
#7
by smaharbA
по поводу келсов - переписывай код заново Книги=Excel.Workbooks; Книга=Книги.Open(ИмяФайла,0,1); ... ПолучитьЗначение(Книга,i,2)
#10
by G-Re
Да, еще заморочка у тебя ожидается, если количество, то сразу вопрос ЕдиницаИзмерения!!! Как правило, это подчиненный к ТМЦ справочник, в котором ссылка на Перечисление. Если у тебя в Екселе будут ед.изм, то могут быть большие проблемы - Перечисление программно не модифицируется, поэтому, если встретится некорректно написанная или нестандартная(отсутствующая в Перечислении).
#12
by bijela
первоначально Перем Excel не написал, в книжке про это не говорилось. получил ругательство при попытке открыть расходную накладную. прочитал ругательство, наморщил лоб и вписал там где и все Перем Excel. Манипуляции продвинулись вплоть до выбора файла Excel, а потом ошибка о которой писал раньше: Cell=Excel.Cells(y,x); {Документ.ПриходнаяНакладная.Форма.Модуль}: Значение не представляет агрегатный объект (Cells)
#14
by G-Re
Если на это ... РабочаяКнига.Open(ИмяФайла,0,1); ... не ругается(Текст скопипастил с твоего) и Перем Еxcel есть, посмотри 1. Одно ли это в тексте описание этой переменоой. Должно быть одно. Поставь его самым первым оператором в модуле Формы. 2. Проверь на буквы слово Excel, может где-то кириллица попалась. Скопипасти это имя из объявления Excel=СоздатьОбъект("Excel.Application"); ----- в Перем. Каких-то других причин вроде нет. Задачка в общем-то примитивная.
#15
by bijela
переменные в начале модуля в следующем виде Перем ИмяФайла, ИмяКаталога, Excel; , а кириллицу проверю.
#16
by smaharbA
Код переписывай, о такой наколке рано или поздно во всех ветках про ексель предупреждаю в все, что тебе нужно
#17
by bijela
кириллица подвела однозначно. переписал заново ошибка выше пропала. потом возникли локальные ошибки с реквизитами и идентификаторами, но в конечном итоге справился. больше не ругается. проверяет старые и создает новые наименования в справочнике ТМЦ. Но, и похоже это уже сильный геморой для меня: данные из таблицы Excel (второй столбец наименование товара, третий - его количество)в приходную накладную загоняет , но только без товара первой ячейки Excel. Повторюсь, в справочник ТМЦ товар попал, а в приходную накладную нет, есть только его количество, естественно там где оно и должно быть. с последующими товарами из Exel таблицы проблем нет - попадают все в нужном количестве. ниже показываю код, который получился: Стр=(СокрЛП(Строка(ПолучитьЗначение(Excel,i,1)))); Если ПустаяСтрока(Стр)=1 Then
#21
by bijela
с этим прыгскоком ситуация аналогичная: не ругается, наименование первого товара в табличную часть документа (любого) 1с не пишет.
#23
by G-Re
Присоединяюсь к . Код экстравагантен для такой простой задачки. Тебе уже обо всем рассказали и показали, выкинь все, подумай и структурно и осознанно напиши все снова... и все получится!
#24
by bijela
Коллеги, если я могу вас так назвать?, а скорей всего нет, так как я просто интересующийся. Проведя анализ я понял, что дело не в моем коде, а точнее позаимствованном, пусть даже и таком экстравагантном для такой простой задачки. аналогичную проблему я получал при использовании внешней обработки "прыгскок". Поэтому полез посмотреть свойства реквизита ТМЦ приходной накладной, где в поле Тип значения Справочник.ТМЦ поменял на просто Справочник. Представьте, заработала. Все мои ТМЦ попали в приходную накладную.
#26
by G-Re
Не стОит, в неопределенных типах есть некоторые нюансы в работе. Все же перепиши код, очень понадобится в дальнейшем, потому что в этой кальке пишутся все обмены с чем угодно.
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- 1C vs Excel по оле. Подскажите как выгрузить таблицу из 1С в шаблон excel
- v7: v7 : НДС при возврате
- v7: Что нужно чтоб подключить ККМ Меркурий 112F к 1с V7 Торговля + склад
- v7: v7.7 премещение элемента справочника
- v7: v8: v7: Кто-нибудь сумел скачать комплект отчетности за I квартал 2007 года
- v7: можно ли использовать таблицу отчет как Экселевскую таблицу
- v7: 1С V7.7 в сети
- v7: 1C:V7 starter program (for SQL) - обнаружена ошибка
- v7: Выгрузить таблицу значений в таблицу
- v7: Чтение excel файлов без установленого excel
- v7: Перенос данных Бухгалтерия из v7 в v8
- v7: v7 Перехват глобального события ПриЗаписи() или ОбработкаПроведения()
В этой группе 1С
- Что должно формироваться? ОНО или ОНА?
- Обработка Консоль кластера серверов для 8.2 - существует ли?
- Как отключить доступ к элементам подменю?
- 8.2. Обновить дерево значений на форме
- v7: SQL полностью зависает при проведении документа
- перенос данных из ЗУП в Бух
- РБК не обновляет классификатор банков РФ?
- Удержание по исполнительному листу, ЗУП глючит?
- РЛС и измерения регистра сведений
- ЗУП. Резервы отпусков
- УПП. Учет готовой продукции в нескольких единицах измерения
- Как подключают терминалы для снятия денег с карточек. Эквайринг.
- v8: Перенос настроек СКД между компановщиками
- v7: Yoksel: при сохранении в Ексель меняется формат ячейки
- Как бы "украсть" заполнение таб части Реализации в УТ?
- РИб: Ссылки на узлы плана обмена?!
- v7: перебор элементов справочника
- ка 1.1 поступление ос и списание на затраты
- Отбор по значению в регистре сведений.
- v7: Создание программно документа