|
Ошибка в процедуре | ☑ | ||
---|---|---|---|---|
0
sovsemnovichek
23.08.13
✎
09:33
|
Подскажите, пожалуйста, в чем ошибка...
{Форма.Форма.Форма(78)}: Значение не является значением объектного типа (НомерСтроки) Для НомерСтроки = Шаблон.НомерСтроки По КоличествоСтрок Цикл |
|||
1
Wobland
23.08.13
✎
09:34
|
в Шаблоне. следующий
|
|||
2
ДенисЧ
23.08.13
✎
09:34
|
Для НомерСтроки = Шаблон.НомерСтроки
Тут ошибка не в процедуре... |
|||
3
Wobland
23.08.13
✎
09:35
|
(2) а что такого?
|
|||
4
sovsemnovichek
23.08.13
✎
09:35
|
Т.е. надо Шаблон поправлять?
|
|||
5
Wobland
23.08.13
✎
09:36
|
(4) этого нам знать не дано
|
|||
6
ДенисЧ
23.08.13
✎
09:36
|
(3) не такого, а такой... dna - есть такая аббревиатура...
|
|||
7
ДенисЧ
23.08.13
✎
09:36
|
(4) шаблон уже поздно править. Править нужно запись в трудовой..
|
|||
8
sovsemnovichek
23.08.13
✎
09:37
|
(7) К чему эта запись?
|
|||
9
sovsemnovichek
23.08.13
✎
09:38
|
Приходишь за помощью, получаешь...
|
|||
10
Wobland
23.08.13
✎
09:38
|
да, мне тоже интересно, какую запись и как предлагает изменить ДенисЧ ;)
|
|||
11
Wobland
23.08.13
✎
09:39
|
(9) прежде чем ходить за помощью, приведи себя в состояние "я сам ну никак не могу справиться"
|
|||
12
Trotter
23.08.13
✎
09:40
|
(0)И код наверное лучше весь давать, а то по ошибке мало чего понятно
|
|||
13
Rie
23.08.13
✎
09:40
|
(9) Ответ - в (1).
Сворее всего, у Вас переменной Шаблон ничего не присвоено. Или присвоено не то, что нужно. |
|||
14
Wobland
23.08.13
✎
09:40
|
(12) не надо. мы обожаем загадки
|
|||
15
sovsemnovichek
23.08.13
✎
09:47
|
Ошибка посылает меня в это место:
Именно на первую строчку, где начинается цикл Для Каждого Колонка Из Шаблон.Колонки Цикл Если Колонка.ВидДанных = Перечисления.ВидыДанных.НомерПоПорядку Тогда КолонкаНомерПоПорядку = Колонка.НомерКолонки; ИначеЕсли Колонка.ВидДанных = Перечисления.ВидыДанных.Артикул Тогда КолонкаАртикул = Колонка.НомерКолонки; ИначеЕсли Колонка.ВидДанных = Перечисления.ВидыДанных.Наименование Тогда КолонкаНаименование = Колонка.НомерКолонки; ИначеЕсли Колонка.ВидДанных = Перечисления.ВидыДанных.АртикулНаименование Тогда КолонкаАртикулНаименование = Колонка.НомерКолонки; ИначеЕсли Колонка.ВидДанных = Перечисления.ВидыДанных.ЕдиницаИзмерения Тогда КолонкаЕдиницаИзмерения = Колонка.НомерКолонки; ИначеЕсли Колонка.ВидДанных = Перечисления.ВидыДанных.КодОКЕИ Тогда КолонкаКодОКЕИ = Колонка.НомерКолонки; ИначеЕсли Колонка.ВидДанных = Перечисления.ВидыДанных.Количество Тогда КолонкаКоличество = Колонка.НомерКолонки; ИначеЕсли Колонка.ВидДанных = Перечисления.ВидыДанных.Цена Тогда КолонкаЦена = Колонка.НомерКолонки; ИначеЕсли Колонка.ВидДанных = Перечисления.ВидыДанных.Сумма Тогда КолонкаСумма = Колонка.НомерКолонки; ИначеЕсли Колонка.ВидДанных = Перечисления.ВидыДанных.СтавкаНДС Тогда КолонкаСтавкаНДС = Колонка.НомерКолонки; ИначеЕсли Колонка.ВидДанных = Перечисления.ВидыДанных.СуммаНДС Тогда КолонкаСуммаНДС = Колонка.НомерКолонки; КонецЕсли; КонецЦикла; |
|||
16
sovsemnovichek
23.08.13
✎
09:48
|
Для Каждого Колонка Из Шаблон.Колонки Цикл
Если Колонка.ВидДанных = Перечисления.ВидыДанных.НомерПоПорядку Тогда КолонкаНомерПоПорядку = Колонка.НомерКолонки; ИначеЕсли Колонка.ВидДанных = Перечисления.ВидыДанных.Артикул Тогда КолонкаАртикул = Колонка.НомерКолонки; ИначеЕсли Колонка.ВидДанных = Перечисления.ВидыДанных.Наименование Тогда КолонкаНаименование = Колонка.НомерКолонки; ИначеЕсли Колонка.ВидДанных = Перечисления.ВидыДанных.АртикулНаименование Тогда КолонкаАртикулНаименование = Колонка.НомерКолонки; ИначеЕсли Колонка.ВидДанных = Перечисления.ВидыДанных.ЕдиницаИзмерения Тогда КолонкаЕдиницаИзмерения = Колонка.НомерКолонки; ИначеЕсли Колонка.ВидДанных = Перечисления.ВидыДанных.КодОКЕИ Тогда КолонкаКодОКЕИ = Колонка.НомерКолонки; ИначеЕсли Колонка.ВидДанных = Перечисления.ВидыДанных.Количество Тогда КолонкаКоличество = Колонка.НомерКолонки; ИначеЕсли Колонка.ВидДанных = Перечисления.ВидыДанных.Цена Тогда КолонкаЦена = Колонка.НомерКолонки; ИначеЕсли Колонка.ВидДанных = Перечисления.ВидыДанных.Сумма Тогда КолонкаСумма = Колонка.НомерКолонки; ИначеЕсли Колонка.ВидДанных = Перечисления.ВидыДанных.СтавкаНДС Тогда КолонкаСтавкаНДС = Колонка.НомерКолонки; ИначеЕсли Колонка.ВидДанных = Перечисления.ВидыДанных.СуммаНДС Тогда КолонкаСуммаНДС = Колонка.НомерКолонки; КонецЕсли; КонецЦикла; Блин, извиняюсь |
|||
17
Галахад
гуру
23.08.13
✎
09:49
|
Ты про "Шаблон" лучше расскажи.
|
|||
18
sovsemnovichek
23.08.13
✎
09:49
|
Да че за фигня....
Сюда вот Для Каждого Колонка Из Шаблон.Колонки Цикл |
|||
19
sovsemnovichek
23.08.13
✎
09:50
|
Шаблон это справочник "ШаблоныЗагрузокИзExcel"
|
|||
20
Rie
23.08.13
✎
09:52
|
(19) Покажи оператор, которым переменной Шаблон присваивается значение.
|
|||
21
Ёпрст
23.08.13
✎
09:54
|
(19) теперь подумай, что есть Шаблон.НомерСтроки у тебя..
и может придёт оно, просветление. |
|||
22
sovsemnovichek
23.08.13
✎
09:56
|
Я тут подумал и решил, что может ну его этот шаблон... Как мне данные поместить в новую табличную часть?
|
|||
23
roman52
23.08.13
✎
09:59
|
для начала приведи весь код процедуры (или функции)
|
|||
24
sovsemnovichek
23.08.13
✎
09:59
|
Вот я пытаюсь определить количество колонок и строк в файле
Попытка Состояние( "Загрузка Microsoft Excel..." ); ExcelПриложение = Новый COMОбъект("Excel.Application"); Исключение Сообщить("Ошибка при загрузке Microsoft Excel." + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание); Возврат; КонецПопытки; Попытка Состояние("Открытие файла Microsoft Excel..."); ExcelФайл = ExcelПриложение.WorkBooks.Open(ИмяФайла); Исключение Сообщить("Ошибка открытия файла Microsoft Excel." + ИмяФайла + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание); ExcelПриложение.Quit(); Возврат; КонецПопытки; Попытка Состояние("Обработка файла Microsoft Excel..."); ExcelЛист = ExcelФайл.Sheets(1); xlCellTypeLastCell = 11; КоличествоСтрок = ExcelЛист.Cells.SpecialCells(xlCellTypeLastCell).Row; КоличествоКолонк = ExcelЛист.Cells.SpecialCells(xlCellTypeLastCell).Column; Исключение Сообщить("Ошибка открытия листа №1 Microsoft Excel." + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание); ExcelПриложение.Quit(); Возврат; КонецПопытки; Если КоличествоСтрок < 2 И КоличествоКолонк < 10 Тогда Сообщить("Неверный формат данных!" + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание); ExcelПриложение.Quit(); Возврат; КонецЕсли; И хочу построить новую табличную часть, помогите это сделать, пожалуйста, о опытнейшие люди |
|||
25
roman52
23.08.13
✎
10:02
|
(24) построить новую табличную часть в Excel-е или добавить новую таб.часть в справочнике 1С "ШаблоныЗагрузокИзExcel"??
приведи ВЕСЬ код процедуры, в которой есть этот злосчастный [Для Каждого Колонка Из Шаблон.Колонки Цикл] |
|||
26
Rie
23.08.13
✎
10:04
|
(22) Ответь на вопрос (20)
|
|||
27
sovsemnovichek
23.08.13
✎
10:05
|
Попытка
Состояние( "Загрузка Microsoft Excel..." ); ExcelПриложение = Новый COMОбъект("Excel.Application"); Исключение Сообщить("Ошибка при загрузке Microsoft Excel." + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание); Возврат; КонецПопытки; Попытка Состояние("Открытие файла Microsoft Excel..."); ExcelФайл = ExcelПриложение.WorkBooks.Open(ИмяФайла); Исключение Сообщить("Ошибка открытия файла Microsoft Excel." + ИмяФайла + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание); ExcelПриложение.Quit(); Возврат; КонецПопытки; Попытка Состояние("Обработка файла Microsoft Excel..."); ExcelЛист = ExcelФайл.Sheets(1); xlCellTypeLastCell = 11; КоличествоСтрок = ExcelЛист.Cells.SpecialCells(xlCellTypeLastCell).Row; КоличествоКолонк = ExcelЛист.Cells.SpecialCells(xlCellTypeLastCell).Column; Исключение Сообщить("Ошибка открытия листа №1 Microsoft Excel." + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание); ExcelПриложение.Quit(); Возврат; КонецПопытки; Если КоличествоСтрок < 2 И КоличествоКолонк < 10 Тогда Сообщить("Неверный формат данных!" + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание); ExcelПриложение.Quit(); Возврат; КонецЕсли; КолонкаНомерПоПорядку = 0; КолонкаАртикул = 0; КолонкаНаименование = 0; КолонкаАртикулНаименование = 0; КолонкаЕдиницаИзмерения = 0; КолонкаКодОКЕИ = 0; КолонкаКоличество = 0; КолонкаЦена = 0; КолонкаСумма = 0; КолонкаСтавкаНДС = 0; КолонкаСуммаНДС = 0; ТабличноеПоле.Очистить(); СтарыйНомерПоПорядку = 0; Для НомерСтроки = Шаблон.НомерСтроки По КоличествоСтрок Цикл Если Не КолонкаНомерПоПорядку = 0 Тогда Попытка НомерПоПорядку = Число(ExcelЛист.Cells(НомерСтроки, КолонкаНомерПоПорядку).Value); Исключение Продолжить; КонецПопытки; КонецЕсли; Если СтарыйНомерПоПорядку > НомерПоПорядку Тогда Продолжить; КонецЕсли; Если Не КолонкаАртикул = 0 Тогда Попытка Артикул = СокрЛП(ExcelЛист.Cells(НомерСтроки, КолонкаАртикул).Value); Исключение Сообщить("Неверный формат данных ячейки строка: " + НомерСтроки + ", колонка: " + КолонкаАртикул + "" + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание); Продолжить; КонецПопытки; КонецЕсли; Если Не КолонкаНаименование = 0 Тогда Попытка Наименование = СокрЛП(ExcelЛист.Cells(НомерСтроки, КолонкаНаименование).Value); Исключение Сообщить("Неверный формат данных ячейки строка: " + НомерСтроки + ", колонка: " + КолонкаНаименование + "" + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание); Продолжить; КонецПопытки; КонецЕсли; Если Не КолонкаАртикулНаименование = 0 Тогда Попытка Строка = ExcelЛист.Cells(НомерСтроки, КолонкаАртикулНаименование).Value; Исключение Сообщить("Неверный формат данных ячейки строка: " + НомерСтроки + ", колонка: " + КолонкаАртикулНаименование + "" + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание); Продолжить; КонецПопытки; НомерПозиции = Найти(Строка, "/"); Если НомерПозиции = 0 Тогда Наименование = СокрЛП(Строка); Иначе Артикул = СокрЛП(Сред(Строка, 1, НомерПозиции - 1)); Наименование = СокрЛП(Сред(Строка, НомерПозиции + 1)); КонецЕсли; КонецЕсли; Если Не КолонкаЕдиницаИзмерения = 0 Тогда Попытка ЕдиницаИзмерения = СокрЛП(ExcelЛист.Cells(НомерСтроки, КолонкаЕдиницаИзмерения).Value); Исключение Сообщить("Неверный формат данных ячейки строка: " + НомерСтроки + ", колонка: " + КолонкаЕдиницаИзмерения + "" + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание); Продолжить; КонецПопытки; КонецЕсли; Если Не КолонкаКодОКЕИ = 0 Тогда Попытка КодОКЕИ = СокрЛП(ExcelЛист.Cells(НомерСтроки, КолонкаКодОКЕИ).Value); Исключение Сообщить("Неверный формат данных ячейки строка: " + НомерСтроки + ", колонка: " + КолонкаКодОКЕИ + "" + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание); Продолжить; КонецПопытки; КонецЕсли; Если Не КолонкаКоличество = 0 Тогда Попытка Количество = Число(ExcelЛист.Cells(НомерСтроки, КолонкаКоличество).Value); Исключение Сообщить("Неверный формат данных ячейки строка: " + НомерСтроки + ", колонка: " + КолонкаКоличество + "" + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание); Продолжить; КонецПопытки; КонецЕсли; Если Не КолонкаЦена = 0 Тогда Попытка Цена = Число(ExcelЛист.Cells(НомерСтроки, КолонкаЦена).Value); Исключение Сообщить("Неверный формат данных ячейки строка: " + НомерСтроки + ", колонка: " + КолонкаЦена + "" + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание); Продолжить; КонецПопытки; КонецЕсли; Если Не КолонкаСумма = 0 Тогда Попытка Сумма = Число(ExcelЛист.Cells(НомерСтроки, КолонкаСумма).Value); Исключение Сообщить("Неверный формат данных ячейки строка: " + НомерСтроки + ", колонка: " + КолонкаСумма + "" + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание); Продолжить; КонецПопытки; КонецЕсли; Если Не КолонкаСтавкаНДС = 0 Тогда Попытка СтавкаНДС = СокрЛП(ExcelЛист.Cells(НомерСтроки, КолонкаСтавкаНДС).Value); Исключение Сообщить("Неверный формат данных ячейки строка: " + НомерСтроки + ", колонка: " + КолонкаСтавкаНДС + "" + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание); Продолжить; КонецПопытки; КонецЕсли; Если Не КолонкаСуммаНДС = 0 Тогда Попытка СуммаНДС = Число(ExcelЛист.Cells(НомерСтроки, КолонкаСуммаНДС).Value); Исключение Сообщить("Неверный формат данных ячейки строка: " + НомерСтроки + ", колонка: " + КолонкаСуммаНДС + "" + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание); Продолжить; КонецПопытки; КонецЕсли; Строка = ТабличноеПоле.Добавить(); Строка.НомерПоПорядку = НомерПоПорядку; Строка.Артикул = Артикул; Строка.Наименование = Наименование; Строка.ЕдиницаИзмерения = ЕдиницаИзмерения; Строка.КодОКЕИ = КодОКЕИ; Строка.Количество = Количество; Строка.Цена = Цена; Строка.Сумма = Сумма; Строка.СтавкаНДС = СтавкаНДС; Строка.СуммаНДС = СуммаНДС; СтарыйНомерПоПорядку = НомерПоПорядку; КонецЦикла; |
|||
28
Rie
модератор
23.08.13
✎
10:11
|
(27) Ты можешь показать, где у тебя переменной Шаблон значение присваивается?
Если НИГДЕ - то вот и получи ошибку из (0) и не морочь людям голову. |
|||
29
sovsemnovichek
23.08.13
✎
10:17
|
Код не я писал, мне дали задание его поправить... Поэтому плаваю... Извините... Может поможете отделаться от шаблона и в новую ТабЧасть все загнать?
|
|||
30
Aprobator
23.08.13
✎
10:23
|
Шаблон - ТЗ и к гадалке не ходи. И у шаблона нет номера строки.
Пора уж с 7 ки то уходить мышлением то. В 8 ке это делается так:
|
|||
31
Aprobator
23.08.13
✎
10:25
|
впрочем тут вообще фиг знает что делается.
|
|||
32
sovsemnovichek
23.08.13
✎
10:26
|
и на этом спасибо
|
|||
33
Aprobator
23.08.13
✎
10:26
|
но НомерСтроки - реквизит конкретной строки ТЗ, а не ТЗ в целом.
|
|||
34
Aprobator
23.08.13
✎
10:27
|
Отладчик, кстати, хорошая вещь. Рекомендую для использования.
|
|||
35
Rie
23.08.13
✎
10:27
|
(29) Сколько?
|
|||
36
Aprobator
23.08.13
✎
10:28
|
(35) я бы не рискнул ни за какие деньги )
|
|||
37
ptiz
23.08.13
✎
10:31
|
(32) Шаблон - это у тебя нечто, у чего отсутствует свойство "НомерСтроки".
|
|||
38
sovsemnovichek
23.08.13
✎
10:37
|
Ну меня тут (36) не спросили... Дали... Делай, разбирайся как хочешь...
|
|||
39
Aprobator
23.08.13
✎
10:38
|
(38) я не про то немного. На данном этапе вашего развития, я бы с вами связываться не рискнул.
|
|||
40
Aprobator
23.08.13
✎
10:39
|
+(39) в (35) то имеется ввиду - сколько заплатишь?
|
|||
41
sovsemnovichek
23.08.13
✎
10:47
|
я бы тоже с собой не связался=) потому, что я ученик, еще глупый студент...
|
|||
42
sovsemnovichek
23.08.13
✎
10:48
|
Это т.е. вам от меня деньги нужны
|
|||
43
Ёпрст
23.08.13
✎
10:49
|
(41) поставь нужный драйвер и всё заработает само
|
|||
44
ptiz
23.08.13
✎
10:54
|
(41) Ты хочешь обойти строки Екселя. Так?
Начиная с определенной строки. Судя по коду, предполагается, что номер начальной строки хранится в объекте "Шаблон" в реквизите "НомерСтроки". 1С тебе говорит, что у "Шаблон" - нет такого реквизита. Дальше продолжишь размышления? |
|||
45
Wobland
23.08.13
✎
11:02
|
человек взял штатную загрузку из ТабДокумента и не может заставить её работать что ли?
|
|||
46
GANR
23.08.13
✎
11:08
|
(0) А синтаксис-помощник и отладчик что показывают?
|
|||
47
Aprobator
23.08.13
✎
11:08
|
(42) мне нет.
|
|||
48
sovsemnovichek
23.08.13
✎
11:13
|
А как создать новую ТЧ и загнать в нее данные из файла Excel
|
|||
49
Wobland
23.08.13
✎
11:15
|
(48) добавить ТЧ, добавить реквизитов, получить объект, в цикле читая из екселя создавать новые строки ТЧ и присваивать им что-нибудь
|
|||
50
Rie
23.08.13
✎
11:15
|
(48) Никак не создать новую _ТЧ_ :-(
Это - такая штука, которая дана свыше. Не фантазируйте! Найдите ошибку для начала! |
|||
51
Rie
модератор
23.08.13
✎
11:20
|
И вообще... Был в (0) задан конкретный вопрос - в этой ветке о нём и речь.
Насчёт создания ТЧ, ремонта гусеничных тракторов и выращивания гортензий - создаются другие ветки. |
|||
52
sovsemnovichek
23.08.13
✎
11:21
|
Ок) ищу ошибку
|
|||
53
Csar
23.08.13
✎
11:35
|
(52) вместо "Шаблон.НомерСтроки" укажи 10.
А вообще вместо "Шаблон.НомерСтроки" надо указать номер строки в экселе, с которой начинаются строки с нужными данными, т.е. первая строка после шапки экселевской таблицы. |
|||
54
Aprobator
23.08.13
✎
14:31
|
(52) про ошибку я тебе еще в (33) сказал.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |