|
программное заполнение доумента Операция | ☑ | ||
---|---|---|---|---|
0
bagira
21.01.12
✎
16:27
|
Нужно данными из екселя заполнить документ Операция. Т.к. в документе табличной части нет, а выложен отбор из регистра бухгалтерии, то делаю вывод что заполнять надо регистр. Но что-то не клеится, программа отрабатывает, ошибок не дает, я даже для надежности на форме паралельно табличное поле заполняю. Но в документе и в регистре записи не добавляются. Кто-нибудь подскажите пожалуйста где косяк. Вот код:
Процедура ЧтениеXLSФайла(Элемент) ТЗ = Новый ТаблицаЗначений; ТЗ.Колонки.Добавить("Номер"); ТЗ.Колонки.Добавить("ФИО"); ТЗ.Колонки.Добавить("Сумма"); НомерЛиста = 1; //Пытаемся подключиться к Excel Попытка Excel = новый COMОбъект("Excel.Application"); Исключение Сообщить("Похоже, Excel на компьютере не установлен. Необходимо выполнить установку/переустановку Excel."); Возврат; КонецПопытки; //Подключились удачно, открываем файл Excel.Workbooks.Open(ИмяФайла); //Открываем необходимый лист Excel.Sheets(НомерЛиста).select(); //Получим количество строк и колонок. //В разных версиях Excel получаются по-разному, поэтому сначала определим версию Excel Версия = Лев(Excel.Version,Найти(Excel.Version,".")-1); Если Версия = "8" тогда ФайлСтрок = Excel.Cells.CurrentRegion.Rows.Count; ФайлКолонок = Макс(Excel.Cells.CurrentRegion.Columns.Count, 13); Иначе ФайлСтрок = Excel.Cells(1,1).SpecialCells(11).Row; ФайлКолонок = Excel.Cells(1,1).SpecialCells(11).Column; Конецесли; Сообщить ("Количество строк = "+ФайлСтрок); Сообщить("Количество колонок = "+ФайлКолонок); НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Регистратор.Значение = ДокументОперация; НаборЗаписей.Прочитать(); Для а = 1 по ФайлСтрок Цикл строкаТЗ = ТЗ.Добавить(); строкаТЗ.Номер = Excel.Cells(а, 1).Value; строкаТЗ.ФИО = Excel.Cells(а, 2).Value; строкаТЗ.Сумма = Excel.Cells(а, 3).Value; КонецЦикла; Результат = ТЗ.Скопировать(); ЭлементыФормы.Результат.СоздатьКолонки(); //Заполним теперь по ТЗ набор записей Для каждого стр Из ТЗ Цикл ФИО = Справочники.ФизическиеЛица.НайтиПоНаименованию(стр.ФИО); Проводка = НаборЗаписей.Добавить(); //Проводка = ДокументОперация.Движения.Добавить(); Проводка.Регистратор = ДокументОперация; Проводка.Период = ДокументОперация.Дата; Проводка.Организация = ДокументОперация.Организация; //Счета... Проводка.СчетДт = ПланыСчетов.Хозрасчетный.РасчетыСПерсоналомПоОплатеТруда; Проводка.СчетКт = ПланыСчетов.Хозрасчетный.Вспомогательный; БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт, Проводка.СубконтоДт,"РаботникиОрганизации",ФИО); ПРоводка.Сумма = Excel.Cells(а, 3).Value; Проводка.НомерЖурнала = ""; КонецЦикла; НаборЗаписей.Записать(Ложь); //Закрываем Excel Excel.ActiveWorkbook.Close(); КонецПроцедуры |
|||
1
Fragster
гуру
21.01.12
✎
16:28
|
не увидел "наборзаписей.записать()"
|
|||
2
bagira
21.01.12
✎
16:30
|
Как это ??? перед закрытием екселя стоит
|
|||
3
bagira
21.01.12
✎
16:34
|
может ограничение какое есть на колиство? у меня там 402 строки. Ну кто-нибудь подскажите...
|
|||
4
Fragster
гуру
21.01.12
✎
16:37
|
(2) а, в натуре... форматирование кода сломало глаза...
приходит на ум только НаборЗаписей.Отбор.Регистратор.Использование = Истина; ну и Сообщить(ТЗ.Количество()); |
|||
5
bagira
21.01.12
✎
16:38
|
ТЗ заполняется, я ж на форме вижу ее.... щас с использованием попробую....уже всю голову себе сломала
|
|||
6
golden-pack
21.01.12
✎
16:40
|
Отладчик есть - чтобы голову не ломать
|
|||
7
Fragster
гуру
21.01.12
✎
16:41
|
если ДокументОперация это ДокументОбъект, а не ДокументСсылка, то
НаборЗаписей = ДокументОперация.Движения.Хозрасчетный; |
|||
8
bagira
21.01.12
✎
16:43
|
ДокументОперация, это ссылка.
Нашла я где косяк. Может пригодится кому. Как я и стала подозревать, есть ограничения на количество записей. В файле оставила 20 записей вместо 402., все село как в аптеке. Но все равно всем спасибо...)) |
|||
9
Fragster
гуру
21.01.12
✎
16:46
|
(8) вообще-то там нет ограничения на количество записе
|
|||
10
Fragster
гуру
21.01.12
✎
16:47
|
й, по крайней мере, 400 влезает (как и 10000)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |