![]() |
|
Ошибка сохранения в .xls формат по кнопке ещё | ☑ | ||
---|---|---|---|---|
0
NIGHTHUNTER
25.08.22
✎
06:01
|
При формировании макета, в документе, Производится его сохранение в .xls формат, по кнопке ещё.
Выходит диалог, где задается путь в сохраняемый каталог. http://joxi.ru/Vm6jkblC3J45Xm После в процессе сохранения выходит непонятная ошибка http://joxi.ru/8An130OCNdzQ92 . Над ещё есть пиктограмма сохранения. По ней сохраняется. Так же над ещё есть три точки, там меню файл. так же сохраняется. Почему идет ошибка, при сохранении через диалог ещё ? |
|||
1
Мимохожий Однако
25.08.22
✎
07:00
|
На второй картинке есть кнопка Подробно. Там ответ. Но еще надо "долго думать"
|
|||
2
DrZombi
гуру
25.08.22
✎
07:02
|
(0) Предлагаю вам запустить отладчик и вы все поймете, где ошибка :)
Встречный вопрос: Это ошибка возникает на любой печатной форме документа(ов) или только на той, что вы добавили? |
|||
3
DrZombi
гуру
25.08.22
✎
07:06
|
+(0) При формировании печатных форм методикой "БСП", есть ряд переменных, которые заполняются нужными значениями при формировании печатных форм.
Рекомендую вам их добавить в свой кусочек кода печатной формы :) |
|||
4
NIGHTHUNTER
25.08.22
✎
12:28
|
(1) Дело в том что в подробно нет ничего http://joxi.ru/Grq8VexCz7G3VA .
И переход в конфигуратор тоже никуда не приводит. |
|||
5
NIGHTHUNTER
25.08.22
✎
12:31
|
(2) От куда я что пойму запустив отладчик?
Искать в нем по тексту ошибки? Переход в конфигуратор ничего не открывает. Места где ошибка. В другом документе , сейчас посмотрел, идет такая же ошибка. Но ещё в другом ее вроде как нет. Там на печать выводилась печатная форма. Внешняя. А где ошибка это макеты документа. |
|||
6
NIGHTHUNTER
25.08.22
✎
12:33
|
Вот код, который формирует макет, где потом идет ошибка, при сохранении в .xls, через ещё.
Процедура Печать_М15_ЗаказКлиентаДавальца(Команда) Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Для вывода печатной формы документ должен быть записан!"; Сообщение.Сообщить(); Возврат; КонецЕсли; ТабДок = М15_ЗКД_ПечатьНаСервере(); КоллекцияПечатныхФорм = УправлениеПечатьюКлиент.НоваяКоллекцияПечатныхФорм("Макет"); ПечатнаяФорма = УправлениеПечатьюКлиент.ОписаниеПечатнойФормы(КоллекцияПечатныхФорм, "Макет"); ПечатнаяФорма.СинонимМакета = "М15"; ПечатнаяФорма.ТабличныйДокумент = ТабДок; ПечатнаяФорма.ИмяФайлаПечатнойФормы = "М15"; ОбластиОбъектов = Новый СписокЗначений; ОбластиОбъектов.Добавить(Объект.Ссылка,Объект.Ссылка); УправлениеПечатьюКлиент.ПечатьДокументов(КоллекцияПечатныхФорм, ОбластиОбъектов); КонецПроцедуры |
|||
7
DrZombi
гуру
25.08.22
✎
12:33
|
(5) Там все в форме "Предварительного просмотра" - форма одна, ее трудно пропустить.
Чисто отладчиком запускаешься и останавливаешься на том моменте, где система определяет, а как же назвать файлы :) |
|||
8
Ryzeman
25.08.22
✎
12:33
|
"От куда я что пойму запустив отладчик?"
Золотая цитата |
|||
9
DrZombi
гуру
25.08.22
✎
12:34
|
(6) Типовой посмотри, тебя удивит, как это делает сам разраб конфигурации :)
|
|||
10
NIGHTHUNTER
25.08.22
✎
12:35
|
(7) Как эту форму то открыть?
|
|||
11
DrZombi
гуру
25.08.22
✎
12:35
|
(6) Вот тут пишется , как бы имен файлов.
ОбластиОбъектов = Новый СписокЗначений; ОбластиОбъектов.Добавить(Объект.Ссылка,Объект.Ссылка); Не хорошо, если у вас там нет ссылок :) |
|||
12
mikecool
25.08.22
✎
12:36
|
(8) для автора достаточно "От куда я что пойму"
он как то давно уже ничего не понимает ((( |
|||
13
NIGHTHUNTER
25.08.22
✎
12:37
|
||||
14
DrZombi
гуру
25.08.22
✎
12:37
|
(10) Форма предопределенная "ПечатьДокументов"
|
|||
15
DrZombi
гуру
25.08.22
✎
12:37
|
(13) Не, надо так глубоко :)
|
|||
16
DrZombi
гуру
25.08.22
✎
12:38
|
не надо
|
|||
17
DrZombi
гуру
25.08.22
✎
12:41
|
+(14) Общая форма, заговариваюсь уже :)
|
|||
18
DrZombi
гуру
25.08.22
✎
12:46
|
+ (6) Еще у вас там "М15_ЗКД_ПечатьНаСервере"
Вы области Табличного документа тоже назначаете, ссылки? //По методики БСП. //НомерСтрокиНачало - начало вашего документа (начало страницы) //ОбъектыПечати - Список значений, содержащий ссылку на документ, или справочник, откуда печатаете (можно искусственно указать ссылку на любой справочник, используется для группировок при записи в файл) // В табличном документе зададим имя области, в которую был // выведен объект. Нужно для возможности печати покомплектно. УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, СведенияОДокументе.Документ); |
|||
19
DrZombi
гуру
25.08.22
✎
12:48
|
+(6)
// Задает область печати объекта в табличном документе. Необходимо использовать при выводе нескольких печатных форм // в одном табличном документе для возможности печати комплектов документов, а также для возможности сохранения // печатных форм в отдельных файлах. // Необходимо вызывать после формирования каждой печатной формы в табличном документе. // // Параметры: // ТабличныйДокумент - ТабличныйДокумент - печатная форма; // НомерСтрокиНачало - Число - позиция начала очередной области в документе; // ОбъектыПечати - см. УправлениеПечатьюПереопределяемый.ПриПечати.ОбъектыПечати // Ссылка - ЛюбаяСсылка - объект печати. // // Пример: // Пока ВыборкаПоДокументам.Следующий() Цикл // НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1; // // ... вывод печатной формы в табличный документ ... // УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, ВыборкаПоДокументам.Ссылка); // КонецЦикла; // Процедура ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, Ссылка) Экспорт Если Не ОбщегоНазначения.ЭтоСсылка(ТипЗнч(Ссылка)) Тогда ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Недопустимое значение параметра ""Ссылка"", |ожидалось значение ссылочного типа, передано значение: ""%1"" (тип %2)'"), Ссылка, ТипЗнч(Ссылка)); Попытка // Такая конструкция нужна для проброса стека в журнал регистрации. ВызватьИсключение ТекстСообщения; Исключение ЗаписьЖурналаРегистрации(НСтр("ru = 'Печать'", ОбщегоНазначения.КодОсновногоЯзыка()), УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); КонецПопытки; Возврат; КонецЕсли; Элемент = ОбъектыПечати.НайтиПоЗначению(Ссылка); Если Элемент = Неопределено Тогда ИмяОбласти = "Документ_" + Формат(ОбъектыПечати.Количество() + 1, "ЧН=; ЧГ="); ОбъектыПечати.Добавить(Ссылка, ИмяОбласти); Иначе ИмяОбласти = Элемент.Представление; КонецЕсли; НомерСтрокиОкончание = ТабличныйДокумент.ВысотаТаблицы; ТабличныйДокумент.Область(НомерСтрокиНачало, , НомерСтрокиОкончание, ).Имя = ИмяОбласти; Если Не НастройкиПечати().ИспользоватьПодписиИПечати Тогда Возврат; КонецЕсли; Для Каждого Рисунок Из ТабличныйДокумент.Рисунки Цикл ЭтоПодписьИПечать = Ложь; Для Каждого ИмяОбластиСПодписьюИПечатью Из ПрефиксыИменОбластейСПодписьюИПечатью() Цикл Если СтрНайти(Рисунок.Имя, ИмяОбластиСПодписьюИПечатью) > 0 Тогда ЭтоПодписьИПечать = Истина; Прервать; КонецЕсли; КонецЦикла; Если Не ЭтоПодписьИПечать Тогда Продолжить; КонецЕсли; Если Рисунок.ТипРисунка = ТипРисункаТабличногоДокумента.Картинка И СтрНайти(Рисунок.Имя, "_Документ_") = 0 Тогда Рисунок.Имя = Рисунок.Имя + "_" + ИмяОбласти; КонецЕсли; КонецЦикла; КонецПроцедуры |
|||
20
NIGHTHUNTER
25.08.22
✎
12:53
|
(18) Это какой то пример, который я стал последовательно использовать в последствии.
Выявилась вот эта ошибка, с сохранением в эксель, через ещё. нужно сейчас мне ее выявить и устранить. |
|||
21
NIGHTHUNTER
25.08.22
✎
12:55
|
Вот я нашел форму,
СохранениеПечатнойФормы . В ней же нужно искать ошибку, это форма (13) . |
|||
22
DrZombi
гуру
25.08.22
✎
12:57
|
(21) Не знаю, я потерял суть... Написал все что знал.
Ошибка у вас тут. ОбластиОбъектов = Новый СписокЗначений; ОбластиОбъектов.Добавить(Объект.Ссылка,Объект.Ссылка); А вот так 1С это пишет насамом деле. (19) А как вы в (6) "ТабДок = М15_ЗКД_ПечатьНаСервере();" , Пишите, я не знаю :) |
|||
23
NIGHTHUNTER
25.08.22
✎
12:57
|
При нажатии на сохранить, отрабатывает вот эта процедура и потом идет ошибка
&НаКлиенте Процедура Сохранить(Команда) Если Элементы.ПапкаДляСохраненияФайлов.Видимость Тогда Если ВариантСохранения = "СохранитьВПапку" И ПустаяСтрока(ВыбраннаяПапка) Тогда ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru = 'Укажите папку.'; |en = 'Select a folder.'"),,"ВыбраннаяПапка"); Возврат; КонецЕсли; КонецЕсли; ФорматыСохранения = Новый Массив; Для Каждого ВыбранныйФормат Из ВыбранныеФорматыСохранения Цикл Если ВыбранныйФормат.Пометка Тогда ФорматыСохранения.Добавить(ВыбранныйФормат.Значение); КонецЕсли; КонецЦикла; Если ФорматыСохранения.Количество() = 0 Тогда ПоказатьПредупреждение(,НСтр("ru = 'Укажите как минимум один из предложенных форматов.'; |en = 'Specify at least one of the suggested formats.'")); Возврат; КонецЕсли; РезультатВыбора = Новый Структура; РезультатВыбора.Вставить("УпаковатьВАрхив", УпаковатьВАрхив); РезультатВыбора.Вставить("ФорматыСохранения", ФорматыСохранения); РезультатВыбора.Вставить("ВариантСохранения", ВариантСохранения); РезультатВыбора.Вставить("ПапкаДляСохранения", ВыбраннаяПапка); РезультатВыбора.Вставить("ОбъектДляПрикрепления", ВыбранныйОбъект); РезультатВыбора.Вставить("ПереводитьИменаФайловВТранслит", ПереводитьИменаФайловВТранслит); ОповеститьОВыборе(РезультатВыбора); КонецПроцедуры |
|||
24
DrZombi
гуру
25.08.22
✎
12:58
|
(23) Смотрите в (22) и немного думать. :)
|
|||
25
DrZombi
гуру
25.08.22
✎
13:01
|
(22) Эх, мне вас жаль... НО.
В конструкции ОбластиОбъектов = Новый СписокЗначений; ОбластиОбъектов.Добавить(Объект.Ссылка,Объект.Ссылка); Представление, должно быть названием области, которую вы должны задать в табличном документе. Смотрите в (19) Кусок коду ОбъектыПечати = ОбластиОбъектов Элемент = ОбъектыПечати.НайтиПоЗначению(Ссылка); Если Элемент = Неопределено Тогда ИмяОбласти = "Документ_" + Формат(ОбъектыПечати.Количество() + 1, "ЧН=; ЧГ="); ОбъектыПечати.Добавить(Ссылка, ИмяОбласти); Иначе ИмяОбласти = Элемент.Представление; КонецЕсли; |
|||
26
NIGHTHUNTER
25.08.22
✎
13:09
|
текс ошибки нигде не найден. Хотел местно найти где он выводится .
Не определен список получаемых файлов. |
|||
27
NIGHTHUNTER
25.08.22
✎
13:11
|
(25) Мне это не понятно. Подсказали бы что нужно сделать. Я не умею гадать.
|
|||
28
DrZombi
гуру
25.08.22
✎
13:22
|
(27) По тексту в (25)
Представление, должно быть названием области, которую вы должны задать в табличном документе. ОбластиОбъектов = Новый СписокЗначений; ОбластиОбъектов.Добавить(Объект.Ссылка,<Объект.Ссылка - ОШИБКА ТУТ!!!>); |
|||
29
DrZombi
гуру
25.08.22
✎
13:22
|
+(27) коль вы используете формы БСП, то потрудитесь так же и сопутствующие данные заполнять :)
|
|||
30
NIGHTHUNTER
25.08.22
✎
13:38
|
(28) Что конкретно сделать?
|
|||
31
DrZombi
гуру
25.08.22
✎
13:47
|
Процедура Печать_М15_ЗаказКлиентаДавальца(Команда)
Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Для вывода печатной формы документ должен быть записан!"; Сообщение.Сообщить(); Возврат; КонецЕсли; ТабДок = М15_ЗКД_ПечатьНаСервере(); КоллекцияПечатныхФорм = УправлениеПечатьюКлиент.НоваяКоллекцияПечатныхФорм("Макет"); ПечатнаяФорма = УправлениеПечатьюКлиент.ОписаниеПечатнойФормы(КоллекцияПечатныхФорм, "Макет"); ПечатнаяФорма.СинонимМакета = "М15"; ПечатнаяФорма.ТабличныйДокумент = ТабДок; ПечатнаяФорма.ИмяФайлаПечатнойФормы = "М15"; ОбластиОбъектов = Новый СписокЗначений; //Ура!!! Я то что задает по фен Шую БСП, содержимое файла ИмяОбласти = "Документ_" + Формат(1, "ЧН=; ЧГ="); ОбластиОбъектов.Добавить(Объект.Ссылка, ИмяОбласти); //ОбластиОбъектов.Добавить(Объект.Ссылка,Объект.Ссылка); - Ошибка молодости УправлениеПечатьюКлиент.ПечатьДокументов(КоллекцияПечатныхФорм, ОбластиОбъектов); КонецПроцедуры |
|||
32
DrZombi
гуру
25.08.22
✎
13:50
|
+ (30) А в "М15_ЗКД_ПечатьНаСервере()"
Нужно, если хочется что бы все было как надо. Нужно задать Область, используя код //Где то в дебрях функции "М15_ЗКД_ПечатьНаСервере" ИмяОбласти = "Документ_" + Формат(1, "ЧН=; ЧГ="); //ТабличныйДокумент - это табличный документ, который уже заполнен... НомерСтрокиНачало = 1; НомерСтрокиОкончание = ТабличныйДокумент.ВысотаТаблицы; ТабличныйДокумент.Область(НомерСтрокиНачало, , НомерСтрокиОкончание, ).Имя = ИмяОбласти; |
|||
33
DrZombi
гуру
25.08.22
✎
13:52
|
+(0)Точно, ну... держи
Процедура Печать_М15_ЗаказКлиентаДавальца(Команда) Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Для вывода печатной формы документ должен быть записан!"; Сообщение.Сообщить(); Возврат; КонецЕсли; ТабДок = М15_ЗКД_ПечатьНаСервере(); КоллекцияПечатныхФорм = УправлениеПечатьюКлиент.НоваяКоллекцияПечатныхФорм("Макет"); ПечатнаяФорма = УправлениеПечатьюКлиент.ОписаниеПечатнойФормы(КоллекцияПечатныхФорм, "Макет"); ПечатнаяФорма.СинонимМакета = "М15"; ПечатнаяФорма.ТабличныйДокумент = ТабДок; ПечатнаяФорма.ИмяФайлаПечатнойФормы = "М15"; ОбластиОбъектов = Новый СписокЗначений; //Ура!!! Я то что задает по фен Шую БСП, содержимое файла ИмяОбласти = "Документ_" + Формат(1, "ЧН=; ЧГ="); ОбластиОбъектов.Добавить(Объект.Ссылка, ИмяОбласти); // Табличный документ НомерСтрокиНачало = 1; НомерСтрокиОкончание = ТабДок.ВысотаТаблицы; ТабДок.Область(НомерСтрокиНачало, , НомерСтрокиОкончание, ).Имя = ИмяОбласти; //ОбластиОбъектов.Добавить(Объект.Ссылка,Объект.Ссылка); - Ошибка молодости УправлениеПечатьюКлиент.ПечатьДокументов(КоллекцияПечатныхФорм, ОбластиОбъектов); КонецПроцедуры |
|||
34
DrZombi
гуру
25.08.22
✎
13:53
|
(0) Бери и беги, блаженный :)
|
|||
35
NIGHTHUNTER
25.08.22
✎
14:09
|
(34) Не совсем понял конечно. Но сейчас буду пробовать! Спасибо!
|
|||
36
NIGHTHUNTER
25.08.22
✎
14:23
|
(34) Спасибо! Первое тестирование показало что сработало!
Мне все же не известная технология, буду ещё разбираться в ней. |
|||
37
Ryzeman
25.08.22
✎
14:48
|
(36) >>буду ещё разбираться в ней.
Ложь... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |