Ошибка при вызове метода контекста sheets

Ошибка при выборе листа эксель ☑ 0

falselight

21.03.19

10:34

Использую обработку для загрузки данных с эксель листов.

На форме появилось дерево, файла эксель и его листов. Выбираю лист.

Жму прочитать, в тз появляются данные.

Но если выбрать другой лист и нажать прочитать, то, выходит ошибка

{ВнешняяОбработка.ЗагрузкаИзExcel_1_2.Форма.Форма.Форма(319)}: Ошибка при вызове метода контекста (Sheets)

    Excel.Sheets(ЭлементыФормы.ДеревоЛистов.ТекущаяСтрока.Листы).select();  

по причине:

Произошла исключительная ситуация (0x800a03ec)

То есть как её исключить? Что бы перечитывался другой выбранный лист?

1

falselight

21.03.19

10:39

Вижу ошибку, Excel — не определена в этом случае. Наверное в этом дело.

2

falselight

21.03.19

10:44

Все же ошибка идет, не подскажете почему?

{ВнешняяОбработка.ЗагрузкаИзExcel_1_2.Форма.Форма.Форма(329)}: Ошибка при вызове метода контекста (Sheets)

    Excel.Sheets(ЭлементыФормы.ДеревоЛистов.ТекущаяСтрока.Листы).select();  

по причине:

Произошла исключительная ситуация (0x800a03ec)

3

Дмитрий

21.03.19

10:44

ЭлементыФормы.ДеревоЛистов.ТекущаяСтрока.Листы чему равно?

4

falselight

21.03.19

10:51

Почему вот это бывает пустое?????

При первой загрузке там COMОбъект

(3) Названию выбранного листа.

5

falselight

21.03.19

10:51

(4+) Excel.Sheets

6

falselight

21.03.19

10:57

Точку останова ставлю, вроде как обновляются данные

без точки останова ошибка, как будто COMОбъект не успевает считаться, как тут быть?

7

falselight

21.03.19

10:58

как с этим быть? Что то не понятно!!!!

8

falselight

21.03.19

11:06

Почему не видна функция в 1с ТекущееВремя() ?

9

falselight

21.03.19

11:08

Хотел вот такую функцию использовать, паузу. но она не работает.

Процедура Пауза(Время)

чЧас=0; чМин=0; чСек=0;

ТекущееВремя(чЧас,чМин,чСек);

чТекВремя = чЧас*3600+чМин*60+чСек;

чВремяЗавершения = чТекВремя+Время;

Пока чТекВремя<чВремяЗавершения Цикл

ТекущееВремя(чЧас,чМин,чСек);

чТекВремя = чЧас*3600+чМин*60+чСек;

КонецЦикла;

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

10

falselight

21.03.19

12:17

Ставлю точку останова на этой строке.

// ЧТЕНИЕ ЛИСТА

Процедура КоманднаяПанель1ПрочитатьДанныеСЛиста(Кнопка)

    Если ОбрЗавершена = 1 Тогда

        Сообщить(«Данный файл уже был обработан. Перезапустите обработку и выберите новый файл для загрузки!»);

        Возврат;

    КонецЕсли;

    //

    // Необходимый лист

    Если Найти(СокрЛП(Строка(ЭлементыФормы.ДеревоЛистов.ТекущаяСтрока.Листы)), «xls») > 0 Тогда

        Предупреждение(«Выберите конкретный лист для загрузки, а не сам файл!»);

        Возврат;

    КонецЕсли;

    //

    Если Excel = неопределено Тогда

        Попытка

            Excel = новый COMОбъект(«Excel.Application»);

        Исключение

            Сообщить(«Похоже, Excel на компьютере не установлен. Необходимо выполнить установку/переустановку Excel.»);

            Возврат;

        КонецПопытки;    

        //НашФайл = Excel.Workbooks.Open(ИмяФайла);

        Excel.Workbooks.Open(ИмяФайла);

    КонецЕсли;

    //

    //ПаузаПустымЦиклом(5);

    //

    Excel.Sheets(ЭлементыФормы.ДеревоЛистов.ТекущаяСтрока.Листы).select();  

Читаю листы, у загруженного файла в дерево. Читается как и один так и другой.

Останавливаясь на точке останова. Как только я убираю точку останова, при этих же действиях вываливается ошибка.

{ВнешняяОбработка.ЗагрузкаИзExcel_1_2.Форма.Форма.Форма(333)}: Ошибка при вызове метода контекста (Sheets)

    Excel.Sheets(ЭлементыФормы.ДеревоЛистов.ТекущаяСтрока.Листы).select();  

по причине:

Произошла исключительная ситуация (0x800a03ec)

Что нужно поправить? Подскажите пожалуйста!

11

falselight

21.03.19

12:21

Решил вопрос.

Нужно было сделать так, —

    Excel = Неопределено;

    //

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

Ошибка при выборе листа эксель

Я

  

falselight

21.03.19 — 10:34

Использую обработку для загрузки данных с эксель листов.

На форме появилось дерево, файла эксель и его листов. Выбираю лист.

Жму прочитать, в тз появляются данные.

Но если выбрать другой лист и нажать прочитать, то, выходит ошибка

{ВнешняяОбработка.ЗагрузкаИзExcel_1_2.Форма.Форма.Форма(319)}: Ошибка при вызове метода контекста (Sheets)

    Excel.Sheets(ЭлементыФормы.ДеревоЛистов.ТекущаяСтрока.Листы).select();  

по причине:

Произошла исключительная ситуация (0x800a03ec)

То есть как её исключить? Что бы перечитывался другой выбранный лист?

  

falselight

1 — 21.03.19 — 10:39

Вижу ошибку, Excel — не определена в этом случае. Наверное в этом дело.

  

falselight

2 — 21.03.19 — 10:44

Все же ошибка идет, не подскажете почему?

{ВнешняяОбработка.ЗагрузкаИзExcel_1_2.Форма.Форма.Форма(329)}: Ошибка при вызове метода контекста (Sheets)
    Excel.Sheets(ЭлементыФормы.ДеревоЛистов.ТекущаяСтрока.Листы).select();   

по причине:

Произошла исключительная ситуация (0x800a03ec)

  

Дмитрий

3 — 21.03.19 — 10:44

ЭлементыФормы.ДеревоЛистов.ТекущаяСтрока.Листы чему равно?

  

falselight

4 — 21.03.19 — 10:51

Почему вот это бывает пустое?????

При первой загрузке там COMОбъект

(3) Названию выбранного листа.

  

falselight

5 — 21.03.19 — 10:51

(4+) Excel.Sheets

  

falselight

6 — 21.03.19 — 10:57

Точку останова ставлю, вроде как обновляются данные

без точки останова ошибка, как будто COMОбъект не успевает считаться, как тут быть?

  

falselight

7 — 21.03.19 — 10:58

как с этим быть? Что то не понятно!!!!

  

falselight

8 — 21.03.19 — 11:06

Почему не видна функция в 1с ТекущееВремя() ?

  

falselight

9 — 21.03.19 — 11:08

Хотел вот такую функцию использовать, паузу. но она не работает.

Процедура Пауза(Время) 
чЧас=0; чМин=0; чСек=0; 
ТекущееВремя(чЧас,чМин,чСек); 
чТекВремя = чЧас*3600+чМин*60+чСек; 
чВремяЗавершения = чТекВремя+Время; 
Пока чТекВремя<чВремяЗавершения Цикл 
ТекущееВремя(чЧас,чМин,чСек); 
чТекВремя = чЧас*3600+чМин*60+чСек; 
КонецЦикла; 
КонецПроцедуры;

  

falselight

10 — 21.03.19 — 12:17

Ставлю точку останова на этой строке.

// ЧТЕНИЕ ЛИСТА

Процедура КоманднаяПанель1ПрочитатьДанныеСЛиста(Кнопка)
    Если ОбрЗавершена = 1 Тогда 
        Сообщить("Данный файл уже был обработан. Перезапустите обработку и выберите новый файл для загрузки!");
        Возврат;
    КонецЕсли;
    //

    // Необходимый лист

    Если Найти(СокрЛП(Строка(ЭлементыФормы.ДеревоЛистов.ТекущаяСтрока.Листы)), "xls") > 0 Тогда
        Предупреждение("Выберите конкретный лист для загрузки, а не сам файл!");
        Возврат;
    КонецЕсли;
    //

    Если Excel = неопределено Тогда 
        Попытка
            Excel = новый COMОбъект("Excel.Application");
        Исключение
            Сообщить("Похоже, Excel на компьютере не установлен. Необходимо выполнить установку/переустановку Excel.");
            Возврат;
        КонецПопытки;     
        //НашФайл = Excel.Workbooks.Open(ИмяФайла);

        Excel.Workbooks.Open(ИмяФайла);
    КонецЕсли;
    //

    //ПаузаПустымЦиклом(5);

    //

    Excel.Sheets(ЭлементыФормы.ДеревоЛистов.ТекущаяСтрока.Листы).select();   


Читаю листы, у загруженного файла в дерево. Читается как и один так и другой.

Останавливаясь на точке останова. Как только я убираю точку останова, при этих же действиях вываливается ошибка.

{ВнешняяОбработка.ЗагрузкаИзExcel_1_2.Форма.Форма.Форма(333)}: Ошибка при вызове метода контекста (Sheets)
    Excel.Sheets(ЭлементыФормы.ДеревоЛистов.ТекущаяСтрока.Листы).select();   
по причине:
Произошла исключительная ситуация (0x800a03ec)


Что нужно поправить? Подскажите пожалуйста!

  

falselight

11 — 21.03.19 — 12:21

Решил вопрос.

Нужно было сделать так, -

    Excel = Неопределено;
    //

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

ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку «Обновить» в браузере.

Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.

  • shtucer-igor 04.03.2009 at 12:54

    однозначно плюс !

    а можно тоже самое но чтобы грузило в установку цен номенклатуры контрагента ?

    Reply

  • softbear 11.03.2009 at 00:25

    однозначно плюс !

    Reply

  • COMPER 19.03.2009 at 11:51

    не работает. Но красиво

    Reply

  • COMPER 19.03.2009 at 11:53

  • Pim 19.03.2009 at 19:10

    не работает :-(. Самый главный минус всех подобных обработок в том, что они грузят только одну цену в УТ. По крайней мере, я других не видел. Эта обработка похоже тоже грузит только одну цену, да ещё и запоролена…

    А что делать, если мне надо загружать сразу четыре разных типов цен в один документ. (Не надо предлагать загружать по-одному — заказчик не хочет).

    Reply

  • egorover 20.03.2009 at 16:26

    внимательней, там загрузка идёт по всем типам цен в строку

    Reply

  • olee 23.03.2009 at 00:40

    У меня пишет:

    {ВнешняяОбработка.ЗагрузкаЦен(7)}: Ошибка при вызове метода контекста (Sheets): Произошла исключительная ситуация (0x8002000b)

    по причине:

    Произошла исключительная ситуация (0x8002000b)

    Reply

  • egorover 23.03.2009 at 08:03

    всё времени нет, укажите имя листа excel Лист1

    Reply

  • olee 23.03.2009 at 10:39

    Создался пустой документ с комментарием из какого файла загружен.

    Пытаюсь снова загрузить цены — пишет в регистре есть такая строка.

    Захожу в регистр сведений — нет такой записи:(

    Reply

  • olee 25.03.2009 at 00:44

    Разобрался, все работает!

    Очень нужная обработка.

    Плюс.

    Reply

  • dev_gen 31.03.2009 at 13:35

    Ищу по всему инету такую разработку уже неделю.

    Огромное спасибище

    Reply

  • kozakm 11.04.2009 at 08:26

  • VikFx 28.04.2009 at 11:00

    то, что нужно, спасибо

    Reply

  • 4emodan 06.05.2009 at 01:22

    Большое спасибо! Давно искал.

    Reply

  • 4emodan 06.05.2009 at 01:39

    А можно сделать, чтоб находило товары не по артикулу, а по коду?

    Reply

  • petrash 06.06.2009 at 11:50

    Выручил! Спасибо большое!

    Reply

  • qwertylion@rambler.ru 07.06.2009 at 19:01

    Обработка хорошее но вот только документ пустой создается, не подскажите как быть?

    Reply

  • steelrat1976 20.06.2009 at 15:19

    нужно обязательно вводить коэффициент, если цена равна базовой, то коэффициент = 1 и тогда поля не пустые. Хотя можно было бы сказать сразу, а то сам часа два мучался пока не понял

    Reply

  • qwertylion@rambler.ru 26.06.2009 at 22:20

    при записи в ценообразование пустой лист

    Reply

  • qwertylion@rambler.ru 26.06.2009 at 22:22

    все нормально разобрался нужно обязательно вводить коэффициент, если цена равна базовой, то коэффициент = 1 и тогда поля не пустые. Хотя можно было бы сказать сразу, а то сам часа два мучался пока не понял СПАСИБО steelrat1976

    Reply

  • Dimka74 21.07.2009 at 04:29

    Пожалуй повторюсь: «А можно сделать, чтоб находило товары не по артикулу, а по коду?»

    Reply

  • sly99 07.10.2009 at 21:25

    можно поподробнее, что где писать?

    выдает ошибку

    {ВнешняяОбработка.ЗагрузкаЦен(7)}: Ошибка при вызове метода контекста (Sheets): Произошла исключительная ситуация (0x8002000b)

    по причине:

    Произошла исключительная ситуация (0x8002000b)

    Reply

  • cooldanie 06.11.2009 at 15:51

    Автор зачет! а можно по наименованию товара а не по артикулу? или сделайте универсально — по коду, по наименованию, по артикулу — и цены не будет вашей обработке. А если 2 колонки цены? опт и розница — 2я и 3я?

    Reply

  • helloworld 09.11.2009 at 14:31

    {ВнешняяОбработка.ЗагрузкаЦен(7)}: Ошибка при вызове метода контекста (Sheets): Произошла исключительная ситуация (0x8002000b)

    по причине:

    Произошла исключительная ситуация (0x8002000b)

    Это наверное когда страница Екселя названа не Лист1. Автор, выбрал бы просто первую страницу — Excel.Sheets(1).select();

    Reply

  • labuh 26.11.2009 at 03:38

    Автору респект и уважуха.

    А как быть с одинаковыми ценами номенклатуры? Обработка не читает одинаковые цены из экселя, — пишет «не нашли артикул ……..»

    Reply

  • labuh 27.11.2009 at 23:51

    Здесь что, больше никто не живет???

    Reply

  • meser 06.12.2009 at 22:22

    Спасибо, действительно обработка нужная, я бы добавил еще поиск не только по артиклу, но и по коду, наименованию.

    Reply

  • nikser 11.01.2010 at 18:40

    Ничего не понимаю . у кого она работает??? документ изменения цен то создался , но пустой .

    Reply

  • Epishko 14.02.2010 at 22:04

    Потратил массу времени — вбил артикулы, а в результате создает пустой документ. Жаль убитого воскресенья! Все-таки несмотря на обильные ссылки по поиску — эту задачку так пока никто и не решил качественно.

    Reply

  • Родная 14.04.2010 at 10:56

    изначально все получается, но при загрузке, выбранных цен в 1С выдается ошибка

    {ВнешняяОбработка.ЗагрузкаЦен(120)}: Ошибка при вызове метода контекста (Записать): Запись с такими ключевыми полями существует! : Закупочная : ******* (Регистр сведений: Цены номенклатуры; Номер строки: 43)

    по причине:

    Запись с такими ключевыми полями существует! : Закупочная :**********(Регистр сведений: Цены номенклатуры; Номер строки: 43)

    при том что справочник «Установка цен номенклатуры» пуст.

    Что я не так делаю?

    Reply

  • provnick 24.01.2011 at 21:39

    Да уж, было б описание, то немного времени потратить на заполнение формы, оказывается нужно файлик подготовить Excelский, страница Екселя названа должна Лист1 и артикул форматнуть в текстовой, а цены в числовой и заполняется таблица для передачи в документ. Но вопрос вот в чем: как две цены закинуть, поле то одно для выбора цены, у кого получилось? egorover пишет (6) «внимательней, там загрузка идёт по всем типам цен в строку» , но выходит только одна цена, что и как? Да еще пароль, понятно, а то…, что ж мышает второе поле для второй цены сделать, а? хоть бы приходную да расходную. В целом гуд и +, ще б поправить.

    Reply

  • Glenas 28.01.2011 at 14:46

    Здравсвуйте. Помогайте, очень надо. Версия 8,2, УТ 11. При открытии выдавал ошибку, поменял ТипыЦенНоменклатуры на ВидыЦен. Обработка открывается, загружает файл xls, корректно находит цены. При попытке загрузки выдаёт {ВнешняяОбработка.ЗагрузкаЦен.МодульОбъекта(90)}: Поле объекта не обнаружено (НеПроводитьНулевыеЗначения) А код модуля запаролен! Что делать, автор? Спасибо

    Reply

  • egorover 29.07.2011 at 10:03

  • lenka-nes@mail.ru 13.10.2011 at 10:19

    спасибо!пригодилось

    Reply

  • wwizard 01.11.2011 at 17:05

    Пишет Ошибка при вызове метода контекста (Sheets)

    Что делать?

    Reply

  • tgnike 08.11.2011 at 12:30

    Она со всеми екселями работате?

    Reply

  • w22u 21.11.2011 at 14:54

    Спасибо, протестируем Вашу обработку.

    Reply

  • Belka063 30.11.2011 at 09:30

    Работает.Спасибо.Помогло

    Reply

  • AruslanM 07.12.2011 at 10:41

    Спасибо за идею, пригодилось.

    Reply

  • Ibrogim 19.12.2011 at 10:51

    Спасибо за обработку, помогла как пример

    Reply

  • ASoft 18.01.2012 at 22:14

  • maratsat 21.01.2012 at 17:44

    Во-первых, хорошая обработка. Спасибо. Значительно сокращает время ввода документа.

    Во-вторых, предложения по улучшению

    Думаю было бы еще лучше, сделать ввод нескольких типов цен за один раз.

    Или как вариант сделать возможным добавлять разные типы цен к одному документу.

    А иначе получается, что розничные, оптовые и крупнооптовые цены в разных документах, что не удобно.

    Reply

  • wwizard 21.01.2012 at 23:25

    (35) так что делать то

    Reply

  • egorover 23.01.2012 at 21:18

    (42) так для этого и создавалось, колонки в таблице excel и есть различные типы цен

    Reply

  • egorover 23.01.2012 at 21:19

    (43) имя листа в книге excel

    Reply

  • FE_D_OR83 31.01.2012 at 15:11

    Спасибо за обработку,сэкономила время. Радует что каждый может доработать под себя.

    Кстати неплохо бы в неё добавить возможность указывать цены для номенклатуры с характеристиками.

    Reply

  • fonomo0 31.01.2012 at 15:24

    Автор С какими версиями Excel работает ваша отработка?

    Reply

  • AlexxxMksv 29.04.2012 at 12:17

    Скажите ваша обработка может проверять соответствие единицы измерения из файла не с базовой единицей, не с единицей хранения остатков, не с единицей для отчетов, не с единицей мест, а с единицами по классификатору?

    Reply

  • TitanLuchs 17.06.2012 at 13:20

    Замечательная штука, спасибо автору, помог сэкономить время на написание своего подобного «велосипеда»!

    Reply

  • MyPuK_OLD 19.11.2013 at 15:46

    Есть какое-то описание или инструкция по использованию данной обработки? Подойдет ли она для работы с Комплексной автоматизацией редакция 1.1?

    Reply

  • egorover 19.11.2013 at 21:23

    Пробуйте, не пробовал, код открыт

    Reply

  • Здравствуйте! Подскажите, пожалуйста! Загружаю из Excel данные, хочу обратиться к именованной области, выдает следующую ошибку: «Ошибка при вызове метода контекста (Cells): Произошла исключительная ситуация (0x800a03ec)
    ФайлСтрок = Excel.Cells(2,1).SpecialCells(21).Row;
    по причине:
    Произошла исключительная ситуация (0x800a03ec)»

    Процедура ОсновныеДействияФормыЗагрузить(Кнопка)

    НомерКолонкиАртикул = ЭлементыФормы.ТабличныйДокумент.Область(«R2C1»;
    НомерКолонкиНаименованияТовара = ЭлементыФормы.ТабличныйДокумент.Область(«R2C2»;
    НомерКолонкиЕдиницаИзмерения = ЭлементыФормы.ТабличныйДокумент.Область(«R2C3»;
    НомерКолонкиСтрана = ЭлементыФормы.ТабличныйДокумент.Область(«R2C4»;

    //В разных версиях Excel получаются по-разному, поэтому сначала определим версию Excel
    Excel = новый COMОбъект(«Excel.Application»;

    Версия = Лев(Excel.Version,Найти(Excel.Version,».»-1);
    Если Версия = «8» тогда
    ФайлСтрок = Excel.Cells.CurrentRegion.Rows.Count;
    ФайлКолонок = Макс(Excel.Cells.CurrentRegion.Columns.Count, 13);
    Иначе
    ФайлСтрок = Excel.Cells(2,1).SpecialCells(21).Row;
    ФайлКолонок = Excel.Cells(2,1).SpecialCells(21).Column;
    Конецесли;

    // Выбираем данные из файла
    Для а = Excel.Cells(2,1).SpecialCells(21).Row по ФайлСтрок Цикл

    //Полуим данные из соответсвующих ячеек
    Артикул = СокрЛП(Excel.Cells(а,Артикул).Value);
    НаименованиеТовара = СокрЛП(Excel.Cells(а,НомерКолонкиНаименованияТовара).Value);
    ЕдиницаИзмерения = СокрЛП(Excel.Cells(а,НомерКолонкиЕдиницаИзмерения).Value);

    Товар = Справочники.Номенклатура.ПустаяСсылка();

    // Ищем товар в справочнике по коду
    Товар = Справочники.Номенклатура.НайтиПоКоду.Артикул;

    // Если не нашли по коду, то ищем по наименованию
    Если Товар.Пустая() Тогда
    Товар = Справочники.Номенклатура.НайтиПоНаименованию.Наименование;
    Конецесли;

    //Если не нашли создаем новый
    Если Товар.Пустая() Тогда
    Товар = Справочники.Номенклатура.СоздатьЭлемент();
    Товар.Наименование = НаименованиеТовара;
    Товар.Артикул = Артикул;
    Товар.БазоваяЕдиницаИзмерения = ЕдиницаИзмерения;
    Товар.СтранаПроисхождения = НомерКолонкиСтрана;
    Товар.Записать();
    Конецесли;
    КонецЦикла;

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

    Ошибка при выборе листа эксель

    Я

      

    falselight

    21.03.19 — 10:34

    Использую обработку для загрузки данных с эксель листов.

    На форме появилось дерево, файла эксель и его листов. Выбираю лист.

    Жму прочитать, в тз появляются данные.

    Но если выбрать другой лист и нажать прочитать, то, выходит ошибка

    {ВнешняяОбработка.ЗагрузкаИзExcel_1_2.Форма.Форма.Форма(319)}: Ошибка при вызове метода контекста (Sheets)

        Excel.Sheets(ЭлементыФормы.ДеревоЛистов.ТекущаяСтрока.Листы).select();  

    по причине:

    Произошла исключительная ситуация (0x800a03ec)

    То есть как её исключить? Что бы перечитывался другой выбранный лист?

      

    falselight

    1 — 21.03.19 — 10:39

    Вижу ошибку, Excel — не определена в этом случае. Наверное в этом дело.

      

    falselight

    2 — 21.03.19 — 10:44

    Все же ошибка идет, не подскажете почему?

    {ВнешняяОбработка.ЗагрузкаИзExcel_1_2.Форма.Форма.Форма(329)}: Ошибка при вызове метода контекста (Sheets)

        Excel.Sheets(ЭлементыФормы.ДеревоЛистов.ТекущаяСтрока.Листы).select();  

    по причине:

    Произошла исключительная ситуация (0x800a03ec)

      

    Дмитрий

    3 — 21.03.19 — 10:44

    ЭлементыФормы.ДеревоЛистов.ТекущаяСтрока.Листы чему равно?

      

    falselight

    4 — 21.03.19 — 10:51

    Почему вот это бывает пустое?????

    При первой загрузке там COMОбъект

    (3) Названию выбранного листа.

      

    falselight

    5 — 21.03.19 — 10:51

    (4+) Excel.Sheets

      

    falselight

    6 — 21.03.19 — 10:57

    Точку останова ставлю, вроде как обновляются данные

    без точки останова ошибка, как будто COMОбъект не успевает считаться, как тут быть?

      

    falselight

    7 — 21.03.19 — 10:58

    как с этим быть? Что то не понятно!!!!

      

    falselight

    8 — 21.03.19 — 11:06

    Почему не видна функция в 1с ТекущееВремя() ?

      

    falselight

    9 — 21.03.19 — 11:08

    Хотел вот такую функцию использовать, паузу. но она не работает.

    Процедура Пауза(Время)

    чЧас=0; чМин=0; чСек=0;

    ТекущееВремя(чЧас,чМин,чСек);

    чТекВремя = чЧас*3600+чМин*60+чСек;

    чВремяЗавершения = чТекВремя+Время;

    Пока чТекВремя<чВремяЗавершения Цикл

    ТекущееВремя(чЧас,чМин,чСек);

    чТекВремя = чЧас*3600+чМин*60+чСек;

    КонецЦикла;

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

      

    falselight

    10 — 21.03.19 — 12:17

    Ставлю точку останова на этой строке.

    // ЧТЕНИЕ ЛИСТА

    Процедура КоманднаяПанель1ПрочитатьДанныеСЛиста(Кнопка)

        Если ОбрЗавершена = 1 Тогда

            Сообщить(«Данный файл уже был обработан. Перезапустите обработку и выберите новый файл для загрузки!»);

            Возврат;

        КонецЕсли;

        //

        // Необходимый лист

        Если Найти(СокрЛП(Строка(ЭлементыФормы.ДеревоЛистов.ТекущаяСтрока.Листы)), «xls») > 0 Тогда

            Предупреждение(«Выберите конкретный лист для загрузки, а не сам файл!»);

            Возврат;

        КонецЕсли;

        //

        Если Excel = неопределено Тогда

            Попытка

                Excel = новый COMОбъект(«Excel.Application»);

            Исключение

                Сообщить(«Похоже, Excel на компьютере не установлен. Необходимо выполнить установку/переустановку Excel.»);

                Возврат;

            КонецПопытки;    

            //НашФайл = Excel.Workbooks.Open(ИмяФайла);

            Excel.Workbooks.Open(ИмяФайла);

        КонецЕсли;

        //

        //ПаузаПустымЦиклом(5);

        //

        Excel.Sheets(ЭлементыФормы.ДеревоЛистов.ТекущаяСтрока.Листы).select();  

    Читаю листы, у загруженного файла в дерево. Читается как и один так и другой.

    Останавливаясь на точке останова. Как только я убираю точку останова, при этих же действиях вываливается ошибка.

    {ВнешняяОбработка.ЗагрузкаИзExcel_1_2.Форма.Форма.Форма(333)}: Ошибка при вызове метода контекста (Sheets)

        Excel.Sheets(ЭлементыФормы.ДеревоЛистов.ТекущаяСтрока.Листы).select();  

    по причине:

    Произошла исключительная ситуация (0x800a03ec)

    Что нужно поправить? Подскажите пожалуйста!

      

    falselight

    11 — 21.03.19 — 12:21

    Решил вопрос.

    Нужно было сделать так, —

        Excel = Неопределено;

        //

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

    Ошибка при выборе листа эксель

    Я

    falselight

    21.03.19 — 10:34

    Использую обработку для загрузки данных с эксель листов.

    На форме появилось дерево, файла эксель и его листов. Выбираю лист.

    Жму прочитать, в тз появляются данные.

    Но если выбрать другой лист и нажать прочитать, то, выходит ошибка

    {ВнешняяОбработка.ЗагрузкаИзExcel_1_2.Форма.Форма.Форма(319)}: Ошибка при вызове метода контекста (Sheets)

        Excel.Sheets(ЭлементыФормы.ДеревоЛистов.ТекущаяСтрока.Листы).select();  

    по причине:

    Произошла исключительная ситуация (0x800a03ec)

    То есть как её исключить? Что бы перечитывался другой выбранный лист?

    falselight

    1 — 21.03.19 — 10:39

    Вижу ошибку, Excel — не определена в этом случае. Наверное в этом дело.

    falselight

    2 — 21.03.19 — 10:44

    Все же ошибка идет, не подскажете почему?

    {ВнешняяОбработка.ЗагрузкаИзExcel_1_2.Форма.Форма.Форма(329)}: Ошибка при вызове метода контекста (Sheets)
        Excel.Sheets(ЭлементыФормы.ДеревоЛистов.ТекущаяСтрока.Листы).select();   
    

    по причине:

    Произошла исключительная ситуация (0x800a03ec)

    Дмитрий

    3 — 21.03.19 — 10:44

    ЭлементыФормы.ДеревоЛистов.ТекущаяСтрока.Листы чему равно?

    falselight

    4 — 21.03.19 — 10:51

    Почему вот это бывает пустое?????

    При первой загрузке там COMОбъект
    

    (3) Названию выбранного листа.

    falselight

    5 — 21.03.19 — 10:51

    (4+) Excel.Sheets

    falselight

    6 — 21.03.19 — 10:57

    Точку останова ставлю, вроде как обновляются данные

    без точки останова ошибка, как будто COMОбъект не успевает считаться, как тут быть?

    falselight

    7 — 21.03.19 — 10:58

    как с этим быть? Что то не понятно!!!!

    falselight

    8 — 21.03.19 — 11:06

    Почему не видна функция в 1с ТекущееВремя() ?

    falselight

    9 — 21.03.19 — 11:08

    Хотел вот такую функцию использовать, паузу. но она не работает.

    Процедура Пауза(Время) 
    чЧас=0; чМин=0; чСек=0; 
    ТекущееВремя(чЧас,чМин,чСек); 
    чТекВремя = чЧас*3600+чМин*60+чСек; 
    чВремяЗавершения = чТекВремя+Время; 
    Пока чТекВремя<чВремяЗавершения Цикл 
    ТекущееВремя(чЧас,чМин,чСек); 
    чТекВремя = чЧас*3600+чМин*60+чСек; 
    КонецЦикла; 
    КонецПроцедуры;

    falselight

    10 — 21.03.19 — 12:17

    Ставлю точку останова на этой строке.

    // ЧТЕНИЕ ЛИСТА
    
    Процедура КоманднаяПанель1ПрочитатьДанныеСЛиста(Кнопка)
        Если ОбрЗавершена = 1 Тогда 
            Сообщить("Данный файл уже был обработан. Перезапустите обработку и выберите новый файл для загрузки!");
            Возврат;
        КонецЕсли;
        //
    
        // Необходимый лист
    
        Если Найти(СокрЛП(Строка(ЭлементыФормы.ДеревоЛистов.ТекущаяСтрока.Листы)), "xls") > 0 Тогда
            Предупреждение("Выберите конкретный лист для загрузки, а не сам файл!");
            Возврат;
        КонецЕсли;
        //
    
        Если Excel = неопределено Тогда 
            Попытка
                Excel = новый COMОбъект("Excel.Application");
            Исключение
                Сообщить("Похоже, Excel на компьютере не установлен. Необходимо выполнить установку/переустановку Excel.");
                Возврат;
            КонецПопытки;     
            //НашФайл = Excel.Workbooks.Open(ИмяФайла);
    
            Excel.Workbooks.Open(ИмяФайла);
        КонецЕсли;
        //
    
        //ПаузаПустымЦиклом(5);
    
        //
    
        Excel.Sheets(ЭлементыФормы.ДеревоЛистов.ТекущаяСтрока.Листы).select();   
    
    
    

    Читаю листы, у загруженного файла в дерево. Читается как и один так и другой.

    Останавливаясь на точке останова. Как только я убираю точку останова, при этих же действиях вываливается ошибка.

    {ВнешняяОбработка.ЗагрузкаИзExcel_1_2.Форма.Форма.Форма(333)}: Ошибка при вызове метода контекста (Sheets)
        Excel.Sheets(ЭлементыФормы.ДеревоЛистов.ТекущаяСтрока.Листы).select();   
    по причине:
    Произошла исключительная ситуация (0x800a03ec)
    
    
    

    Что нужно поправить? Подскажите пожалуйста!

      

    falselight

    11 — 21.03.19 — 12:21

    Решил вопрос.

    Нужно было сделать так, -
    
        Excel = Неопределено;
        //
    
    КонецПроцедуры

    ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку «Обновить» в браузере.

    Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
    Но вы можете создать новую ветку и вам обязательно ответят!
    Каждый час на Волшебном форуме бывает более 2000 человек.

  • shtucer-igor 04.03.2009 at 12:54

    однозначно плюс !

    а можно тоже самое но чтобы грузило в установку цен номенклатуры контрагента ?

    Reply

  • softbear 11.03.2009 at 00:25

    однозначно плюс !

    Reply

  • COMPER 19.03.2009 at 11:51

    не работает. Но красиво

    Reply

  • COMPER 19.03.2009 at 11:53

  • Pim 19.03.2009 at 19:10

    не работает :-(. Самый главный минус всех подобных обработок в том, что они грузят только одну цену в УТ. По крайней мере, я других не видел. Эта обработка похоже тоже грузит только одну цену, да ещё и запоролена…

    А что делать, если мне надо загружать сразу четыре разных типов цен в один документ. (Не надо предлагать загружать по-одному — заказчик не хочет).

    Reply

  • egorover 20.03.2009 at 16:26

    внимательней, там загрузка идёт по всем типам цен в строку

    Reply

  • olee 23.03.2009 at 00:40

    У меня пишет:

    {ВнешняяОбработка.ЗагрузкаЦен(7)}: Ошибка при вызове метода контекста (Sheets): Произошла исключительная ситуация (0x8002000b)

    по причине:

    Произошла исключительная ситуация (0x8002000b)

    Reply

  • egorover 23.03.2009 at 08:03

    всё времени нет, укажите имя листа excel Лист1

    Reply

  • olee 23.03.2009 at 10:39

    Создался пустой документ с комментарием из какого файла загружен.

    Пытаюсь снова загрузить цены — пишет в регистре есть такая строка.

    Захожу в регистр сведений — нет такой записи:(

    Reply

  • olee 25.03.2009 at 00:44

    Разобрался, все работает!

    Очень нужная обработка.

    Плюс.

    Reply

  • dev_gen 31.03.2009 at 13:35

    Ищу по всему инету такую разработку уже неделю.

    Огромное спасибище

    Reply

  • kozakm 11.04.2009 at 08:26

  • VikFx 28.04.2009 at 11:00

    то, что нужно, спасибо

    Reply

  • 4emodan 06.05.2009 at 01:22

    Большое спасибо! Давно искал.

    Reply

  • 4emodan 06.05.2009 at 01:39

    А можно сделать, чтоб находило товары не по артикулу, а по коду?

    Reply

  • petrash 06.06.2009 at 11:50

    Выручил! Спасибо большое!

    Reply

  • qwertylion@rambler.ru 07.06.2009 at 19:01

    Обработка хорошее но вот только документ пустой создается, не подскажите как быть?

    Reply

  • steelrat1976 20.06.2009 at 15:19

    нужно обязательно вводить коэффициент, если цена равна базовой, то коэффициент = 1 и тогда поля не пустые. Хотя можно было бы сказать сразу, а то сам часа два мучался пока не понял

    Reply

  • qwertylion@rambler.ru 26.06.2009 at 22:20

    при записи в ценообразование пустой лист

    Reply

  • qwertylion@rambler.ru 26.06.2009 at 22:22

    все нормально разобрался нужно обязательно вводить коэффициент, если цена равна базовой, то коэффициент = 1 и тогда поля не пустые. Хотя можно было бы сказать сразу, а то сам часа два мучался пока не понял СПАСИБО steelrat1976

    Reply

  • Dimka74 21.07.2009 at 04:29

    Пожалуй повторюсь: «А можно сделать, чтоб находило товары не по артикулу, а по коду?»

    Reply

  • sly99 07.10.2009 at 21:25

    можно поподробнее, что где писать?

    выдает ошибку

    {ВнешняяОбработка.ЗагрузкаЦен(7)}: Ошибка при вызове метода контекста (Sheets): Произошла исключительная ситуация (0x8002000b)

    по причине:

    Произошла исключительная ситуация (0x8002000b)

    Reply

  • cooldanie 06.11.2009 at 15:51

    Автор зачет! а можно по наименованию товара а не по артикулу? или сделайте универсально — по коду, по наименованию, по артикулу — и цены не будет вашей обработке. А если 2 колонки цены? опт и розница — 2я и 3я?

    Reply

  • helloworld 09.11.2009 at 14:31

    {ВнешняяОбработка.ЗагрузкаЦен(7)}: Ошибка при вызове метода контекста (Sheets): Произошла исключительная ситуация (0x8002000b)

    по причине:

    Произошла исключительная ситуация (0x8002000b)

    Это наверное когда страница Екселя названа не Лист1. Автор, выбрал бы просто первую страницу — Excel.Sheets(1).select();

    Reply

  • labuh 26.11.2009 at 03:38

    Автору респект и уважуха.

    А как быть с одинаковыми ценами номенклатуры? Обработка не читает одинаковые цены из экселя, — пишет «не нашли артикул ……..»

    Reply

  • labuh 27.11.2009 at 23:51

    Здесь что, больше никто не живет???

    Reply

  • meser 06.12.2009 at 22:22

    Спасибо, действительно обработка нужная, я бы добавил еще поиск не только по артиклу, но и по коду, наименованию.

    Reply

  • nikser 11.01.2010 at 18:40

    Ничего не понимаю . у кого она работает??? документ изменения цен то создался , но пустой .

    Reply

  • Epishko 14.02.2010 at 22:04

    Потратил массу времени — вбил артикулы, а в результате создает пустой документ. Жаль убитого воскресенья! Все-таки несмотря на обильные ссылки по поиску — эту задачку так пока никто и не решил качественно.

    Reply

  • Родная 14.04.2010 at 10:56

    изначально все получается, но при загрузке, выбранных цен в 1С выдается ошибка

    {ВнешняяОбработка.ЗагрузкаЦен(120)}: Ошибка при вызове метода контекста (Записать): Запись с такими ключевыми полями существует! : Закупочная : ******* (Регистр сведений: Цены номенклатуры; Номер строки: 43)

    по причине:

    Запись с такими ключевыми полями существует! : Закупочная :**********(Регистр сведений: Цены номенклатуры; Номер строки: 43)

    при том что справочник «Установка цен номенклатуры» пуст.

    Что я не так делаю?

    Reply

  • provnick 24.01.2011 at 21:39

    Да уж, было б описание, то немного времени потратить на заполнение формы, оказывается нужно файлик подготовить Excelский, страница Екселя названа должна Лист1 и артикул форматнуть в текстовой, а цены в числовой и заполняется таблица для передачи в документ. Но вопрос вот в чем: как две цены закинуть, поле то одно для выбора цены, у кого получилось? egorover пишет (6) «внимательней, там загрузка идёт по всем типам цен в строку» , но выходит только одна цена, что и как? Да еще пароль, понятно, а то…, что ж мышает второе поле для второй цены сделать, а? хоть бы приходную да расходную. В целом гуд и +, ще б поправить.

    Reply

  • Glenas 28.01.2011 at 14:46

    Здравсвуйте. Помогайте, очень надо. Версия 8,2, УТ 11. При открытии выдавал ошибку, поменял ТипыЦенНоменклатуры на ВидыЦен. Обработка открывается, загружает файл xls, корректно находит цены. При попытке загрузки выдаёт {ВнешняяОбработка.ЗагрузкаЦен.МодульОбъекта(90)}: Поле объекта не обнаружено (НеПроводитьНулевыеЗначения) А код модуля запаролен! Что делать, автор? Спасибо

    Reply

  • egorover 29.07.2011 at 10:03

  • lenka-nes@mail.ru 13.10.2011 at 10:19

    спасибо!пригодилось

    Reply

  • wwizard 01.11.2011 at 17:05

    Пишет Ошибка при вызове метода контекста (Sheets)

    Что делать?

    Reply

  • tgnike 08.11.2011 at 12:30

    Она со всеми екселями работате?

    Reply

  • w22u 21.11.2011 at 14:54

    Спасибо, протестируем Вашу обработку.

    Reply

  • Belka063 30.11.2011 at 09:30

    Работает.Спасибо.Помогло

    Reply

  • AruslanM 07.12.2011 at 10:41

    Спасибо за идею, пригодилось.

    Reply

  • Ibrogim 19.12.2011 at 10:51

    Спасибо за обработку, помогла как пример

    Reply

  • ASoft 18.01.2012 at 22:14

  • maratsat 21.01.2012 at 17:44

    Во-первых, хорошая обработка. Спасибо. Значительно сокращает время ввода документа.

    Во-вторых, предложения по улучшению

    Думаю было бы еще лучше, сделать ввод нескольких типов цен за один раз.

    Или как вариант сделать возможным добавлять разные типы цен к одному документу.

    А иначе получается, что розничные, оптовые и крупнооптовые цены в разных документах, что не удобно.

    Reply

  • wwizard 21.01.2012 at 23:25

    (35) так что делать то

    Reply

  • egorover 23.01.2012 at 21:18

    (42) так для этого и создавалось, колонки в таблице excel и есть различные типы цен

    Reply

  • egorover 23.01.2012 at 21:19

    (43) имя листа в книге excel

    Reply

  • FE_D_OR83 31.01.2012 at 15:11

    Спасибо за обработку,сэкономила время. Радует что каждый может доработать под себя.

    Кстати неплохо бы в неё добавить возможность указывать цены для номенклатуры с характеристиками.

    Reply

  • fonomo0 31.01.2012 at 15:24

    Автор С какими версиями Excel работает ваша отработка?

    Reply

  • AlexxxMksv 29.04.2012 at 12:17

    Скажите ваша обработка может проверять соответствие единицы измерения из файла не с базовой единицей, не с единицей хранения остатков, не с единицей для отчетов, не с единицей мест, а с единицами по классификатору?

    Reply

  • TitanLuchs 17.06.2012 at 13:20

    Замечательная штука, спасибо автору, помог сэкономить время на написание своего подобного «велосипеда»!

    Reply

  • MyPuK_OLD 19.11.2013 at 15:46

    Есть какое-то описание или инструкция по использованию данной обработки? Подойдет ли она для работы с Комплексной автоматизацией редакция 1.1?

    Reply

  • egorover 19.11.2013 at 21:23

    Пробуйте, не пробовал, код открыт

    Reply

  • Здравствуйте! Подскажите, пожалуйста! Загружаю из Excel данные, хочу обратиться к именованной области, выдает следующую ошибку: «Ошибка при вызове метода контекста (Cells): Произошла исключительная ситуация (0x800a03ec)
    ФайлСтрок = Excel.Cells(2,1).SpecialCells(21).Row;
    по причине:
    Произошла исключительная ситуация (0x800a03ec)»

    Процедура ОсновныеДействияФормыЗагрузить(Кнопка)

    НомерКолонкиАртикул = ЭлементыФормы.ТабличныйДокумент.Область(«R2C1»;
    НомерКолонкиНаименованияТовара = ЭлементыФормы.ТабличныйДокумент.Область(«R2C2»;
    НомерКолонкиЕдиницаИзмерения = ЭлементыФормы.ТабличныйДокумент.Область(«R2C3»;
    НомерКолонкиСтрана = ЭлементыФормы.ТабличныйДокумент.Область(«R2C4»;

    //В разных версиях Excel получаются по-разному, поэтому сначала определим версию Excel
    Excel = новый COMОбъект(«Excel.Application»;

    Версия = Лев(Excel.Version,Найти(Excel.Version,».»-1);
    Если Версия = «8» тогда
    ФайлСтрок = Excel.Cells.CurrentRegion.Rows.Count;
    ФайлКолонок = Макс(Excel.Cells.CurrentRegion.Columns.Count, 13);
    Иначе
    ФайлСтрок = Excel.Cells(2,1).SpecialCells(21).Row;
    ФайлКолонок = Excel.Cells(2,1).SpecialCells(21).Column;
    Конецесли;

    // Выбираем данные из файла
    Для а = Excel.Cells(2,1).SpecialCells(21).Row по ФайлСтрок Цикл

    //Полуим данные из соответсвующих ячеек
    Артикул = СокрЛП(Excel.Cells(а,Артикул).Value);
    НаименованиеТовара = СокрЛП(Excel.Cells(а,НомерКолонкиНаименованияТовара).Value);
    ЕдиницаИзмерения = СокрЛП(Excel.Cells(а,НомерКолонкиЕдиницаИзмерения).Value);

    Товар = Справочники.Номенклатура.ПустаяСсылка();

    // Ищем товар в справочнике по коду
    Товар = Справочники.Номенклатура.НайтиПоКоду.Артикул;

    // Если не нашли по коду, то ищем по наименованию
    Если Товар.Пустая() Тогда
    Товар = Справочники.Номенклатура.НайтиПоНаименованию.Наименование;
    Конецесли;

    //Если не нашли создаем новый
    Если Товар.Пустая() Тогда
    Товар = Справочники.Номенклатура.СоздатьЭлемент();
    Товар.Наименование = НаименованиеТовара;
    Товар.Артикул = Артикул;
    Товар.БазоваяЕдиницаИзмерения = ЕдиницаИзмерения;
    Товар.СтранаПроисхождения = НомерКолонкиСтрана;
    Товар.Записать();
    Конецесли;
    КонецЦикла;

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

    Народ, помогите, не могу понять почему на одном и том компе под разными пользователями работает и не работает, вываливает ошибку «Ошибка при вызове метода контекста (Sheets): Произошла исключительная ситуация (0x8002000b)»? гуглом пользоваться умею, но ответа так и не нашел.

    поправка, ексель 2010, работаем на терминалах по РДП, есть домен.

    Sheets — лист книги. может обращается к несущствующему?

    коллекция листов вообще-то

    от этого сильно смысл последнего предложения поменялся? код покажи-то. и где именно валится

    в смысле, от того что ты неправильное определение свойству дала? кстати, автор, Sheets — это не метод

    самое интересное, что под одним пользователем работает нормально, а под другим пользователем вываливает ошибку

    Тэги: 1С 8

    Комментарии доступны только авторизированным пользователям

  • shtucer-igor 04.03.2009 at 12:54

    однозначно плюс !

    а можно тоже самое но чтобы грузило в установку цен номенклатуры контрагента ?

    Reply

  • softbear 11.03.2009 at 00:25

    однозначно плюс !

    Reply

  • COMPER 19.03.2009 at 11:51

    не работает. Но красиво

    Reply

  • COMPER 19.03.2009 at 11:53

  • Pim 19.03.2009 at 19:10

    не работает :-(. Самый главный минус всех подобных обработок в том, что они грузят только одну цену в УТ. По крайней мере, я других не видел. Эта обработка похоже тоже грузит только одну цену, да ещё и запоролена…

    А что делать, если мне надо загружать сразу четыре разных типов цен в один документ. (Не надо предлагать загружать по-одному — заказчик не хочет).

    Reply

  • egorover 20.03.2009 at 16:26

    внимательней, там загрузка идёт по всем типам цен в строку

    Reply

  • olee 23.03.2009 at 00:40

    У меня пишет:

    {ВнешняяОбработка.ЗагрузкаЦен(7)}: Ошибка при вызове метода контекста (Sheets): Произошла исключительная ситуация (0x8002000b)

    по причине:

    Произошла исключительная ситуация (0x8002000b)

    Reply

  • egorover 23.03.2009 at 08:03

    всё времени нет, укажите имя листа excel Лист1

    Reply

  • olee 23.03.2009 at 10:39

    Создался пустой документ с комментарием из какого файла загружен.

    Пытаюсь снова загрузить цены — пишет в регистре есть такая строка.

    Захожу в регистр сведений — нет такой записи:(

    Reply

  • olee 25.03.2009 at 00:44

    Разобрался, все работает!

    Очень нужная обработка.

    Плюс.

    Reply

  • dev_gen 31.03.2009 at 13:35

    Ищу по всему инету такую разработку уже неделю.

    Огромное спасибище

    Reply

  • kozakm 11.04.2009 at 08:26

  • VikFx 28.04.2009 at 11:00

    то, что нужно, спасибо

    Reply

  • 4emodan 06.05.2009 at 01:22

    Большое спасибо! Давно искал.

    Reply

  • 4emodan 06.05.2009 at 01:39

    А можно сделать, чтоб находило товары не по артикулу, а по коду?

    Reply

  • petrash 06.06.2009 at 11:50

    Выручил! Спасибо большое!

    Reply

  • qwertylion@rambler.ru 07.06.2009 at 19:01

    Обработка хорошее но вот только документ пустой создается, не подскажите как быть?

    Reply

  • steelrat1976 20.06.2009 at 15:19

    нужно обязательно вводить коэффициент, если цена равна базовой, то коэффициент = 1 и тогда поля не пустые. Хотя можно было бы сказать сразу, а то сам часа два мучался пока не понял

    Reply

  • qwertylion@rambler.ru 26.06.2009 at 22:20

    при записи в ценообразование пустой лист

    Reply

  • qwertylion@rambler.ru 26.06.2009 at 22:22

    все нормально разобрался нужно обязательно вводить коэффициент, если цена равна базовой, то коэффициент = 1 и тогда поля не пустые. Хотя можно было бы сказать сразу, а то сам часа два мучался пока не понял СПАСИБО steelrat1976

    Reply

  • Dimka74 21.07.2009 at 04:29

    Пожалуй повторюсь: «А можно сделать, чтоб находило товары не по артикулу, а по коду?»

    Reply

  • sly99 07.10.2009 at 21:25

    можно поподробнее, что где писать?

    выдает ошибку

    {ВнешняяОбработка.ЗагрузкаЦен(7)}: Ошибка при вызове метода контекста (Sheets): Произошла исключительная ситуация (0x8002000b)

    по причине:

    Произошла исключительная ситуация (0x8002000b)

    Reply

  • cooldanie 06.11.2009 at 15:51

    Автор зачет! а можно по наименованию товара а не по артикулу? или сделайте универсально — по коду, по наименованию, по артикулу — и цены не будет вашей обработке. А если 2 колонки цены? опт и розница — 2я и 3я?

    Reply

  • helloworld 09.11.2009 at 14:31

    {ВнешняяОбработка.ЗагрузкаЦен(7)}: Ошибка при вызове метода контекста (Sheets): Произошла исключительная ситуация (0x8002000b)

    по причине:

    Произошла исключительная ситуация (0x8002000b)

    Это наверное когда страница Екселя названа не Лист1. Автор, выбрал бы просто первую страницу — Excel.Sheets(1).select();

    Reply

  • labuh 26.11.2009 at 03:38

    Автору респект и уважуха.

    А как быть с одинаковыми ценами номенклатуры? Обработка не читает одинаковые цены из экселя, — пишет «не нашли артикул ……..»

    Reply

  • labuh 27.11.2009 at 23:51

    Здесь что, больше никто не живет???

    Reply

  • meser 06.12.2009 at 22:22

    Спасибо, действительно обработка нужная, я бы добавил еще поиск не только по артиклу, но и по коду, наименованию.

    Reply

  • nikser 11.01.2010 at 18:40

    Ничего не понимаю . у кого она работает??? документ изменения цен то создался , но пустой .

    Reply

  • Epishko 14.02.2010 at 22:04

    Потратил массу времени — вбил артикулы, а в результате создает пустой документ. Жаль убитого воскресенья! Все-таки несмотря на обильные ссылки по поиску — эту задачку так пока никто и не решил качественно.

    Reply

  • Родная 14.04.2010 at 10:56

    изначально все получается, но при загрузке, выбранных цен в 1С выдается ошибка

    {ВнешняяОбработка.ЗагрузкаЦен(120)}: Ошибка при вызове метода контекста (Записать): Запись с такими ключевыми полями существует! : Закупочная : ******* (Регистр сведений: Цены номенклатуры; Номер строки: 43)

    по причине:

    Запись с такими ключевыми полями существует! : Закупочная :**********(Регистр сведений: Цены номенклатуры; Номер строки: 43)

    при том что справочник «Установка цен номенклатуры» пуст.

    Что я не так делаю?

    Reply

  • provnick 24.01.2011 at 21:39

    Да уж, было б описание, то немного времени потратить на заполнение формы, оказывается нужно файлик подготовить Excelский, страница Екселя названа должна Лист1 и артикул форматнуть в текстовой, а цены в числовой и заполняется таблица для передачи в документ. Но вопрос вот в чем: как две цены закинуть, поле то одно для выбора цены, у кого получилось? egorover пишет (6) «внимательней, там загрузка идёт по всем типам цен в строку» , но выходит только одна цена, что и как? Да еще пароль, понятно, а то…, что ж мышает второе поле для второй цены сделать, а? хоть бы приходную да расходную. В целом гуд и +, ще б поправить.

    Reply

  • Glenas 28.01.2011 at 14:46

    Здравсвуйте. Помогайте, очень надо. Версия 8,2, УТ 11. При открытии выдавал ошибку, поменял ТипыЦенНоменклатуры на ВидыЦен. Обработка открывается, загружает файл xls, корректно находит цены. При попытке загрузки выдаёт {ВнешняяОбработка.ЗагрузкаЦен.МодульОбъекта(90)}: Поле объекта не обнаружено (НеПроводитьНулевыеЗначения) А код модуля запаролен! Что делать, автор? Спасибо

    Reply

  • egorover 29.07.2011 at 10:03

  • lenka-nes@mail.ru 13.10.2011 at 10:19

    спасибо!пригодилось

    Reply

  • wwizard 01.11.2011 at 17:05

    Пишет Ошибка при вызове метода контекста (Sheets)

    Что делать?

    Reply

  • tgnike 08.11.2011 at 12:30

    Она со всеми екселями работате?

    Reply

  • w22u 21.11.2011 at 14:54

    Спасибо, протестируем Вашу обработку.

    Reply

  • Belka063 30.11.2011 at 09:30

    Работает.Спасибо.Помогло

    Reply

  • AruslanM 07.12.2011 at 10:41

    Спасибо за идею, пригодилось.

    Reply

  • Ibrogim 19.12.2011 at 10:51

    Спасибо за обработку, помогла как пример

    Reply

  • ASoft 18.01.2012 at 22:14

  • maratsat 21.01.2012 at 17:44

    Во-первых, хорошая обработка. Спасибо. Значительно сокращает время ввода документа.

    Во-вторых, предложения по улучшению

    Думаю было бы еще лучше, сделать ввод нескольких типов цен за один раз.

    Или как вариант сделать возможным добавлять разные типы цен к одному документу.

    А иначе получается, что розничные, оптовые и крупнооптовые цены в разных документах, что не удобно.

    Reply

  • wwizard 21.01.2012 at 23:25

    (35) так что делать то

    Reply

  • egorover 23.01.2012 at 21:18

    (42) так для этого и создавалось, колонки в таблице excel и есть различные типы цен

    Reply

  • egorover 23.01.2012 at 21:19

    (43) имя листа в книге excel

    Reply

  • FE_D_OR83 31.01.2012 at 15:11

    Спасибо за обработку,сэкономила время. Радует что каждый может доработать под себя.

    Кстати неплохо бы в неё добавить возможность указывать цены для номенклатуры с характеристиками.

    Reply

  • fonomo0 31.01.2012 at 15:24

    Автор С какими версиями Excel работает ваша отработка?

    Reply

  • AlexxxMksv 29.04.2012 at 12:17

    Скажите ваша обработка может проверять соответствие единицы измерения из файла не с базовой единицей, не с единицей хранения остатков, не с единицей для отчетов, не с единицей мест, а с единицами по классификатору?

    Reply

  • TitanLuchs 17.06.2012 at 13:20

    Замечательная штука, спасибо автору, помог сэкономить время на написание своего подобного «велосипеда»!

    Reply

  • MyPuK_OLD 19.11.2013 at 15:46

    Есть какое-то описание или инструкция по использованию данной обработки? Подойдет ли она для работы с Комплексной автоматизацией редакция 1.1?

    Reply

  • egorover 19.11.2013 at 21:23

    Пробуйте, не пробовал, код открыт

    Reply

  • Автор beztrud, 19 июн 2014, 23:26

    0 Пользователей и 1 гость просматривают эту тему.

    Цитировать
    1. Создаем реквизит формы Таблица
    2. Заполняем ее на клиенте (отключаемся от ADO)

    А если без реквизита Таблица — то я так понимаю можно использовать таблицу значений, а затем в табличную часть грузить из нее?


    Если долго всматриваться в учебник…то в голову может прийти мысль его открыть!


    Цитировать
    Все что надо это:
    1. Начальная строка
    2. Количество колонок
    3. Признак когда остановиться

    Можете привести код с пояснениями, пожалуйста.



    Попытка
    ФайлЭксель = ПолучитьCOMОбъект(ИмяФайла);
    Исключение
    ПоказатьИнформациюОбОшибке(ИнформацияОбОшибке());
    Отказ = Истина;
    Возврат;
    КонецПопытки;

    СписокИмпорта.Очистить();

    счСтроки = НачальнаяСтрока;
    НомСтр = 0;

    Пока ИСТИНА Цикл 

    НомСтр = НомСтр + 1;

    ОбработкаПрерыванияПользователя();

    ПроверочнаяЯчейка = СокрЛП(ФайлЭксель.Sheets(1).Cells(СчСтроки,1).Value);

    Если ПроверочнаяЯчейка = "#" Тогда

    Прервать;

    КонецЕсли;

    Если ПроверочнаяЯчейка = "" Тогда

    Прервать;

    КонецЕсли;

    Состояние("Загрузка: строка №"+счСтроки);

    НоваяСтрока = СписокИмпорта.Добавить();

    НоваяСтрока.НомерСтроки = НомСтр;

    Для Ш=1 По СписокИмпорта.Колонки.Количество()-1 Цикл

    мКолонка = СписокИмпорта.Колонки.Получить(Ш);

    ЗначениеЯчейки = ФайлЭксель.Sheets(1).Cells(СчСтроки,Ш).Value;

    ЗаполнитьЗначениеПоТипуКолонки(ЗначениеЯчейки, НоваяСтрока[мКолонка.Имя], мКолонка);

    ОтформатироватьЗначениеПоля(ЗначениеЯчейки, НоваяСтрока[мКолонка.Имя], Ш); //очистим от ненужных символов и пр.

    КонецЦикла;

    счСтроки = счСтроки + 1;

    КонецЦикла;

    ФайлЭксель.Application.Quit();

    Получил помощь — скажи СПАСИБО.
    Разобрался сам — расскажи другим.


    ФайлЭксель = ПолучитьCOMОбъект(ИмяФайла);

    Если выбираем xls, то всё нормально, ну а если xlsx — то
    {Обработка.ВычислениеПластика.Форма.Форма.Форма(16)}: Ошибка при вызове метода контекста (ПолучитьCOMОбъект)
          ФайлЭксель = ПолучитьCOMОбъект(ИмяФайла);
    по причине:
    Ошибка получения объекта COM: -2147467259(0x80004005): Неопознанная ошибка

    Добавлено: 20 июн 2014, 21:31


    Кстати эта ошибка появляется при повторном выборе файла. При первом выборе ошибки нет, хоть и подгружает дольше, чем xls. Может быть проблема в

    ФайлЭксель.Application.Quit();

    Добавлено: 20 июн 2014, 21:59


    После многократных попыток выяснилось, что ошибка не имеет последовательности. Т.е. может вылезти а может и нет.


    Да такое поведение нормальное для конструкции

    ПолучитьCOMОбъект(ИмяФайла); если открыть файл закрыть и тут же снова открыть, на медленных компах процесс не успевает завершиться и ПолучитьCOMОбъект() подключается к существующему процессу снова, ну а процесс то уже не рабочий…

    СП
    Основное применение функции ПолучитьCOMОбъект — это получение COM-объекта, соответствующего файлу. Для этого следует в качестве первого параметра функции задать имя файла, который будет определять COM-объект. Например, фрагмент кода:
    Таб = ПолучитьCOMОбъект(«C:DATADATA.XLS»);
    создает объект Excel.Application и открывает с его помощью файл документа «C:DATADATA.XLS». Если указанный файл во время выполнения данного фрагмента уже открыт с помощью MS Excel, то будет получена ссылка на уже существующий объект.
    Для файлов, указываемых в качестве параметра данной функции, должно быть установлено соответствие расширения имени файла и класса COM.

    Если долго всматриваться в учебник…то в голову может прийти мысль его открыть!


    cska-fanat-kz

    ПроверочнаяЯчейка = СокрЛП(ФайлЭксель.Sheets(1).Cells(СчСтроки,1).Value);
    Выдает
    {Обработка.ВычислениеПластика.Форма.Форма.Форма(72)}: Ошибка при вызове метода контекста (Cells)
          ПроверочнаяЯчейка = Эксель.Sheets(1).Cells(СчСтроки,2).Value;   
    по причине:
    Произошла исключительная ситуация (0x800a03ec)

    Dethmontt

    ЦитироватьДля файлов, указываемых в качестве параметра данной функции, должно быть установлено соответствие расширения имени файла и класса COM.

    Это как?


    Если долго всматриваться в учебник…то в голову может прийти мысль его открыть!


    cska-fanat-kz

    ЗаполнитьЗначениеПоТипуКолонки(ЗначениеЯчейки, НоваяСтрока[мКолонка.Имя], мКолонка);

    А это что за функция?

    Добавлено: 21 июн 2014, 08:43


    Вернемся все-таки к ADO. Уважаемый Dethmontt просьба помочь. У меня на форме есть ТабличнаяЧасть.Вычисления. Реквизиты этой табличной части — ЧастьИзделия, ВысотаФасада, ШиринаФасада, КоличествоФасадов. Есть файл эксель без наименования столбцов в первой строке, т.е в первой строке уже находятся данные. Структура файла эксель всегда одинакова во второй колонке файла эксель всегда содержится ЧастьИзделия, в четвертой колонке всегда ВысотаФасада, в пятой — ШиринаФасада и в шестой — КоличествоФасадов. Вы писали — 1. Создаем реквизит формы Таблица — т.е нужно создать на форме ТабличныйДокумент с именем Таблица и грузить в него? Или как?
    Все что пришло мне в голову это выбрать файл на клиенте а на сервере считать с него данные и передать на клиент. Но вот моя функция с переменной СтрокаТабличнойЧасти ругается, хоть и грузит данные. У меня к Вам просьба, если не сложно, выложите пожалуйста клиентскую и серверную процедуры для загрузки файла, применимо к моим реквизитам.


    Получил помощь — скажи СПАСИБО.
    Разобрался сам — расскажи другим.


    Народ, помогите, не могу понять почему на одном и том компе под разными пользователями работает и не работает, вываливает ошибку «Ошибка при вызове метода контекста (Sheets): Произошла исключительная ситуация (0x8002000b)»? гуглом пользоваться умею, но ответа так и не нашел.

    поправка, ексель 2010, работаем на терминалах по РДП, есть домен.

    Sheets — лист книги. может обращается к несущствующему?

    коллекция листов вообще-то

    от этого сильно смысл последнего предложения поменялся? код покажи-то. и где именно валится

    в смысле, от того что ты неправильное определение свойству дала? кстати, автор, Sheets — это не метод

    самое интересное, что под одним пользователем работает нормально, а под другим пользователем вываливает ошибку

    Тэги: 1С 8

    Комментарии доступны только авторизированным пользователям

  • shtucer-igor

    однозначно плюс !

    а можно тоже самое но чтобы грузило в установку цен номенклатуры контрагента ?

    Reply

  • softbear

    однозначно плюс !

    Reply

  • COMPER

    не работает. Но красиво

    Reply

  • COMPER

  • Pim

    не работает :-(. Самый главный минус всех подобных обработок в том, что они грузят только одну цену в УТ. По крайней мере, я других не видел. Эта обработка похоже тоже грузит только одну цену, да ещё и запоролена…

    А что делать, если мне надо загружать сразу четыре разных типов цен в один документ. (Не надо предлагать загружать по-одному — заказчик не хочет).

    Reply

  • egorover

    внимательней, там загрузка идёт по всем типам цен в строку

    Reply

  • olee

    У меня пишет:

    {ВнешняяОбработка.ЗагрузкаЦен(7)}: Ошибка при вызове метода контекста (Sheets): Произошла исключительная ситуация (0x8002000b)

    по причине:

    Произошла исключительная ситуация (0x8002000b)

    Reply

  • egorover

    всё времени нет, укажите имя листа excel Лист1

    Reply

  • olee

    Создался пустой документ с комментарием из какого файла загружен.

    Пытаюсь снова загрузить цены — пишет в регистре есть такая строка.

    Захожу в регистр сведений — нет такой записи:(

    Reply

  • olee

    Разобрался, все работает!

    Очень нужная обработка.

    Плюс.

    Reply

  • dev_gen

    Ищу по всему инету такую разработку уже неделю.

    Огромное спасибище

    Reply

  • kozakm

  • VikFx

    то, что нужно, спасибо

    Reply

  • 4emodan

    Большое спасибо! Давно искал.

    Reply

  • 4emodan

    А можно сделать, чтоб находило товары не по артикулу, а по коду?

    Reply

  • petrash

    Выручил! Спасибо большое!

    Reply

  • qwertylion@rambler.ru

    Обработка хорошее но вот только документ пустой создается, не подскажите как быть?

    Reply

  • steelrat1976

    нужно обязательно вводить коэффициент, если цена равна базовой, то коэффициент = 1 и тогда поля не пустые. Хотя можно было бы сказать сразу, а то сам часа два мучался пока не понял

    Reply

  • qwertylion@rambler.ru

    при записи в ценообразование пустой лист

    Reply

  • qwertylion@rambler.ru

    все нормально разобрался нужно обязательно вводить коэффициент, если цена равна базовой, то коэффициент = 1 и тогда поля не пустые. Хотя можно было бы сказать сразу, а то сам часа два мучался пока не понял СПАСИБО steelrat1976

    Reply

  • Dimka74

    Пожалуй повторюсь: «А можно сделать, чтоб находило товары не по артикулу, а по коду?»

    Reply

  • sly99

    можно поподробнее, что где писать?

    выдает ошибку

    {ВнешняяОбработка.ЗагрузкаЦен(7)}: Ошибка при вызове метода контекста (Sheets): Произошла исключительная ситуация (0x8002000b)

    по причине:

    Произошла исключительная ситуация (0x8002000b)

    Reply

  • cooldanie

    Автор зачет! а можно по наименованию товара а не по артикулу? или сделайте универсально — по коду, по наименованию, по артикулу — и цены не будет вашей обработке. А если 2 колонки цены? опт и розница — 2я и 3я?

    Reply

  • helloworld

    {ВнешняяОбработка.ЗагрузкаЦен(7)}: Ошибка при вызове метода контекста (Sheets): Произошла исключительная ситуация (0x8002000b)

    по причине:

    Произошла исключительная ситуация (0x8002000b)

    Это наверное когда страница Екселя названа не Лист1. Автор, выбрал бы просто первую страницу — Excel.Sheets(1).select();

    Reply

  • labuh

    Автору респект и уважуха.

    А как быть с одинаковыми ценами номенклатуры? Обработка не читает одинаковые цены из экселя, — пишет «не нашли артикул ……..»

    Reply

  • labuh

    Здесь что, больше никто не живет???

    Reply

  • meser

    Спасибо, действительно обработка нужная, я бы добавил еще поиск не только по артиклу, но и по коду, наименованию.

    Reply

  • nikser

    Ничего не понимаю . у кого она работает??? документ изменения цен то создался , но пустой .

    Reply

  • Epishko

    Потратил массу времени — вбил артикулы, а в результате создает пустой документ. Жаль убитого воскресенья! Все-таки несмотря на обильные ссылки по поиску — эту задачку так пока никто и не решил качественно.

    Reply

  • Родная

    изначально все получается, но при загрузке, выбранных цен в 1С выдается ошибка

    {ВнешняяОбработка.ЗагрузкаЦен(120)}: Ошибка при вызове метода контекста (Записать): Запись с такими ключевыми полями существует! : Закупочная : ******* (Регистр сведений: Цены номенклатуры; Номер строки: 43)

    по причине:

    Запись с такими ключевыми полями существует! : Закупочная :**********(Регистр сведений: Цены номенклатуры; Номер строки: 43)

    при том что справочник «Установка цен номенклатуры» пуст.

    Что я не так делаю?

    Reply

  • provnick

    Да уж, было б описание, то немного времени потратить на заполнение формы, оказывается нужно файлик подготовить Excelский, страница Екселя названа должна Лист1 и артикул форматнуть в текстовой, а цены в числовой и заполняется таблица для передачи в документ. Но вопрос вот в чем: как две цены закинуть, поле то одно для выбора цены, у кого получилось? egorover пишет (6) «внимательней, там загрузка идёт по всем типам цен в строку» , но выходит только одна цена, что и как? Да еще пароль, понятно, а то…, что ж мышает второе поле для второй цены сделать, а? хоть бы приходную да расходную. В целом гуд и +, ще б поправить.

    Reply

  • Glenas

    Здравсвуйте. Помогайте, очень надо. Версия 8,2, УТ 11. При открытии выдавал ошибку, поменял ТипыЦенНоменклатуры на ВидыЦен. Обработка открывается, загружает файл xls, корректно находит цены. При попытке загрузки выдаёт {ВнешняяОбработка.ЗагрузкаЦен.МодульОбъекта(90)}: Поле объекта не обнаружено (НеПроводитьНулевыеЗначения) А код модуля запаролен! Что делать, автор? Спасибо

    Reply

  • egorover

  • lenka-nes@mail.ru

    спасибо!пригодилось

    Reply

  • wwizard

    Пишет Ошибка при вызове метода контекста (Sheets)

    Что делать?

    Reply

  • tgnike

    Она со всеми екселями работате?

    Reply

  • w22u

    Спасибо, протестируем Вашу обработку.

    Reply

  • Belka063

    Работает.Спасибо.Помогло

    Reply

  • AruslanM

    Спасибо за идею, пригодилось.

    Reply

  • Ibrogim

    Спасибо за обработку, помогла как пример

    Reply

  • ASoft

  • maratsat

    Во-первых, хорошая обработка. Спасибо. Значительно сокращает время ввода документа.

    Во-вторых, предложения по улучшению

    Думаю было бы еще лучше, сделать ввод нескольких типов цен за один раз.

    Или как вариант сделать возможным добавлять разные типы цен к одному документу.

    А иначе получается, что розничные, оптовые и крупнооптовые цены в разных документах, что не удобно.

    Reply

  • wwizard

    (35) так что делать то

    Reply

  • egorover

    (42) так для этого и создавалось, колонки в таблице excel и есть различные типы цен

    Reply

  • egorover

    (43) имя листа в книге excel

    Reply

  • FE_D_OR83

    Спасибо за обработку,сэкономила время. Радует что каждый может доработать под себя.

    Кстати неплохо бы в неё добавить возможность указывать цены для номенклатуры с характеристиками.

    Reply

  • fonomo0

    Автор С какими версиями Excel работает ваша отработка?

    Reply

  • AlexxxMksv

    Скажите ваша обработка может проверять соответствие единицы измерения из файла не с базовой единицей, не с единицей хранения остатков, не с единицей для отчетов, не с единицей мест, а с единицами по классификатору?

    Reply

  • TitanLuchs

    Замечательная штука, спасибо автору, помог сэкономить время на написание своего подобного «велосипеда»!

    Reply

  • MyPuK_OLD

    Есть какое-то описание или инструкция по использованию данной обработки? Подойдет ли она для работы с Комплексной автоматизацией редакция 1.1?

    Reply

  • egorover

    Пробуйте, не пробовал, код открыт

    Reply

  • Понравилась статья? Поделить с друзьями:
  • Ошибка при вызове метода контекста run
  • Ошибка получения контрольного вопроса биллинг недоступен мособлеирц
  • Ошибка плагин не установлен гас управление
  • Ошибка при вызове метода контекста rows
  • Ошибка получения заявления ведомством на госуслугах что это