|
v7: ошибка при сохранении таблицы в файл | ☑ | ||
---|---|---|---|---|
0
noook
12.01.12
✎
15:00
|
есть комплексная 515 (и в предыдущих не работает)
сохраняю таблицу (печатную форму документа счет) \\ ИсхТабл.Опции(0,0,0,0,"",""); ИсхТабл.ТолькоПросмотр(1); ИсхТабл.ПараметрыСтраницы(1,,,,,,,,,,,); ПочтаФайлВложение = "c:\docs1c\документ " + ТекущаяДата() + " Счет № " + ДокНомер + " от " + ДокДата + ".xls"; ИсхТабл.Записать(ПочтаФайлВложение,1); \\ если в счете 1 товар то всё хорошо, если товаров больше, то копируется первая строка и сумма нормальная, а первая строка копируется в остальные ВОПРОСЫ: может ли такое быть от версии офиса установленного? от чего это может быть ещё? |
|||
1
Wobland
12.01.12
✎
15:03
|
а что такой интересный второй параметр у Записать()?
|
|||
2
Tatitutu
12.01.12
✎
15:06
|
(0) весь код в студию (что с циклом у тебе не так)
на экране отображается правильно (Показать()) (1) тип файла |
|||
3
Wobland
12.01.12
✎
15:07
|
(2) да я понимаю, число зачем?
|
|||
4
andrewks
12.01.12
✎
15:11
|
(3) продать СП? :)
|
|||
5
Он
12.01.12
✎
15:11
|
(3) Потому что 1 - нажать одну клавишу, а XLS - четыре.
|
|||
6
povar
12.01.12
✎
15:11
|
(0) офис не при делах
|
|||
7
andrewks
12.01.12
✎
15:12
|
(0) давай таблицы нормальную и проблемную в обоих вариантах (mxl + xls)
|
|||
8
filh
12.01.12
✎
15:25
|
ёкселем сохраняй.
|
|||
9
noook
13.01.12
✎
10:34
|
исходный код процедуры
//проверяем есть ли что то в документе Если Док.КоличествоСтрок() = 0 Тогда Предупреждение("В документе не заполнена табличная часть, документ пустой",0); Возврат; КонецЕсли; ИсхТабл = СоздатьОбъект("Таблица"); ИсхТабл.ИсходнаяТаблица("zayavka"); НачПовт = 0; КонПовт = 0; // Секция ЗаголовокСчета ПечФирма = ""; Банк = ""; Счет = ""; БИК = ""; СчетБанка = ""; Если Найти(Док.Фирма.ЮрЛицо.ИНН, "\") <> 0 Тогда // найден разделитель ПолучательИНН = Лев(Док.Фирма.ЮрЛицо.ИНН, Найти(Док.Фирма.ЮрЛицо.ИНН, "\") - 1); Иначе ПолучательИНН = СокрЛП(Док.Фирма.ЮрЛицо.ИНН); КонецЕсли; Если Найти(Док.Фирма.ЮрЛицо.ИНН, "\") <> 0 Тогда // найден разделитель ПолучательКПП = Сред(Док.Фирма.ЮрЛицо.ИНН, Найти(Док.Фирма.ЮрЛицо.ИНН, "\") + 1); Иначе ПолучательКПП = ""; КонецЕсли; Параметры = СоздатьОбъект("СписокЗначений"); Параметры.ДобавитьЗначение(Док.БанковскийСчет, "БанковскийСчет"); Параметры.ДобавитьЗначение(1, "Режим"); глРеквизитыПлательщикаПолучателя(Параметры); ПечФирма = Параметры.Получить("Результат"); Банк = Параметры.Получить("СтрокаБанка"); Счет = Параметры.Получить("РасчетныйСчет"); БИК = Параметры.Получить("БИК"); СчетБанка = Параметры.Получить("КоррСчет"); ИсхТабл.ВывестиСекцию("ЗаголовокСчета"); НачПовт = НачПовт + ИсхТабл.ВысотаСекции("ЗаголовокСчета"); // секция Заголовок ИсхТабл.ВывестиСекцию("Заголовок"); НачПовт = НачПовт + ИсхТабл.ВысотаСекции("Заголовок"); // Секция Поставщик Поставщик = "ИНН " + ПолучательИНН + " " + "КПП " + ПолучательКПП + " " + СокрЛП(Док.Фирма.ЮрЛицо.ПолнНаименование) + " " + глПредставлениеАдреса(Док.Фирма.ЮрЛицо.ЮрАдрес); Если ПустоеЗначение(Док.Фирма.ЮрЛицо.Телефоны) = 0 Тогда Поставщик = Поставщик + ", тел. " + Док.Фирма.ЮрЛицо.Телефоны; КонецЕсли; ИсхТабл.ВывестиСекцию("Поставщик"); НачПовт = НачПовт + ИсхТабл.ВысотаСекции("Поставщик"); // Секция Покупатель Покупатель = ""; Если ПустоеЗначение(ДокКонтрагент) = 0 Тогда Если Док.Контрагент.ЮрФизЛицо.Выбран() = 1 Тогда Покупатель = СокрЛП(Док.Контрагент.ЮрФизЛицо.ПолнНаименование); Если ПустоеЗначение(Док.Контрагент.ЮрФизЛицо.ИНН) = 0 Тогда Покупатель = "ИНН " + ПолучательИНН + " " + "КПП " + ПолучательКПП + " " + Покупатель; КонецЕсли; Если ПустоеЗначение(Док.Контрагент.ЮрФизЛицо.Телефоны) = 0 Тогда Покупатель = Покупатель + ", тел. " + Док.Контрагент.ЮрФизЛицо.Телефоны; КонецЕсли; КонецЕсли; КонецЕсли; ИсхТабл.ВывестиСекцию("Покупатель"); НачПовт = НачПовт + ИсхТабл.ВысотаСекции("Покупатель"); СекцСкидка = ?(ПустоеЗначение(Док.Скидка) = 0, "Скидка", ""); // Секция Шапка таблицы ИсхТабл.ВывестиСекцию("ШапкаТаблицы" + СекцСкидка); КонПовт = НачПовт + ИсхТабл.ВысотаСекции("ШапкаТаблицы" + СекцСкидка); ИсхТабл.ПовторятьПриПечатиСтроки(НачПовт + 1, КонПовт); // выводим табличную часть НомСтроки = 0; Док.ВыбратьСтроки(); Пока Док.ПолучитьСтроку() = 1 Цикл НомСтроки = НомСтроки + 1; ИсхТабл.ВывестиСекцию("Строка" + СекцСкидка); КонецЦикла; СуммаИтог = Док.Итог("Сумма"); // секция Итого ИсхТабл.ВывестиСекцию("Итого"); // секция ИтогоНДС Если Док.УчитыватьНДС = 1 Тогда СуммаНДСИтог = Док.Итог("СуммаНДС"); Если Док.СуммаВклНДС = 0 Тогда СуммаИтог = СуммаИтог + СуммаНДСИтог; КонецЕсли; ИсхТабл.ВывестиСекцию("ИтогоНДС"); КонецЕсли; // секция ИтогоНП Если Док.УчитыватьНП = 1 Тогда СуммаНПИтог = Док.Итог("СуммаНП"); Если Док.СуммаВклНП = 0 Тогда СуммаИтог = СуммаИтог + СуммаНПИтог; КонецЕсли; ИсхТабл.ВывестиСекцию("ИтогоНП"); КонецЕсли; // секция СуммаПрописью ИсхТабл.ВывестиСекцию("СуммаПрописью"); // секция Подписи ИсхТабл.ВывестиСекцию("Подписи"); //готовим печатную форму ИсхТабл.Опции(0,0,0,0,"",""); ИсхТабл.ТолькоПросмотр(1); ИсхТабл.ПараметрыСтраницы(1,,,,,,,,,,,); ПочтаФайлВложение = "c:\docs1c\документ " + ТекущаяДата() + " Счет № " + ДокНомер + " от " + ДокДата + ".xls"; ИсхТабл.Записать(ПочтаФайлВложение,1); |
|||
10
dk
13.01.12
✎
10:37
|
тебе еще в (2) сказали посмотри что 1с наваяла ПЕРЕД сохраненнием в XLS
|
|||
11
noook
13.01.12
✎
10:49
|
(8) как это сохранять экселем?
(7) это интересный вариант, спасибо |
|||
12
filh
13.01.12
✎
10:50
|
||||
13
НЕА123
13.01.12
✎
10:57
|
(9)
в (0) про товар говорится. где он заполняется? |
|||
14
Tatitutu
13.01.12
✎
10:58
|
ИсхТабл.Показать("Моязаморока");
добавь и посмотри что на экране тебе формирует что у тебя в таблице в секциях "Строка" и "СтрокаСкидка" |
|||
15
НЕА123
13.01.12
✎
11:01
|
+(13)
сорри. слепой. пятница, наверно... |
|||
16
НЕА123
13.01.12
✎
11:04
|
(9)
если док - это выборка тоды приблизительно так Пока Док.ПолучитьСтроку() = 1 Цикл Товар = Док.Товар; // товар - параметр макета НомСтроки = НомСтроки + 1; ИсхТабл.ВывестиСекцию("Строка" + СекцСкидка); КонецЦикла; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |