Имя: Пароль:
1C
1С v8
Внешние печ. формы в 8ке
0 zak555
 
23.01.12
20:52
что-то я не понял - как их отлаживать ?
ведь они в конфу грузятся
1 zak555
 
23.01.12
20:53
но больше всего мне было неясно другое, почему её нельзя просто запустить, выборать док и распечатать по кнопке из этого отчёта, как в 7ке
2 БибиГон
 
23.01.12
20:54
Ты про справочник Внешние отчеты?
3 zak555
 
23.01.12
20:55
(2) ну да
про типовой механизм
4 kotletka
 
23.01.12
20:57
можно через обработку, можно форму с реквизитом нарисовать
5 kotletka
 
23.01.12
20:58
6 zak555
 
23.01.12
20:59
(4) понятно, что можно и хер сломать
я просто не понимаю, почему 1с этого не предусмотрела
7 zak555
 
23.01.12
21:00
(5) и как ты там будешь внешную обработку "отлаживать" ?
8 zak555
 
23.01.12
21:00
ааа
понял
9 Hans
 
23.01.12
21:00
(0) нарисовать в обработке форму, и от туда вызывать процедуры печати модуля. открывать как обработку.
10 zak555
 
23.01.12
21:00
(9) см. в (6)
11 kotletka
 
23.01.12
21:01
(10)ломай хер, им что ли о тебе плакаться
12 aleks-id
 
23.01.12
21:01
(7) ставь бряку в модуле конфы, который открывает внешнюю форму.
13 zak555
 
23.01.12
21:01
(11) нельяз без инструмента
14 Hans
 
23.01.12
21:06
(13)отлаживать можно и без инструрументов потихоньку нажимая f11 найдешь ее во временных папках.
15 Ахиллес
 
23.01.12
21:14
(6) Потому, что паралелограм. Такой ответ устроит?
Люди если им надо вполне успешно отлаживают подключаемые формы и не плачутся по форумам "а почему 1С этого не предусмотрела".
16 zak555
 
23.01.12
21:54
(14) чего-чего ?
17 zak555
 
23.01.12
21:55
(15) почему двумерность ?
так я про это и спросил, как "они" делают
18 Ахиллес
 
23.01.12
21:59
С Луны чтоль свалился? (тфу-тфу, через левое плечо, ромикс обойди стороной эту ветку) 1С распаковывает (сохраняет) подключаемые формы в темповские файлы и уже их запускает на выполнение, как обычные внешние отчёты или обработки. Соответственно в них можно попасть отладчиком. Только надо найти и закоментить в конфигурации код, который темповские файлы стирает.
19 zak555
 
23.01.12
22:01
(18) я ж лунатик
20 Steelvan
 
23.01.12
22:49
Важно.
Если хочешь во внешнюю обработку отладчиком попасть, временные файлы нужно создавать с правильным расширением (epf и erf).
21 zak555
 
24.01.12
10:29
разработчик этих внешних форм, в том числе для СФ, каким методом отладки пользуются ?
22 Serg_1960
 
24.01.12
10:42
(21) Хех :) Интересный вопрос. Не думаю что уних есть свой, какой-то особенный, инструментарий...

Предвижу вопрос: А как "не разработчики" отлаживают?

Ну, например, в копии конфигурации/базы через "Вставить внешнюю обработку,отчет..." и потом (после отладки) - "Сохранить как внешнюю обработку,отчет..." соответственно.
23 zak555
 
24.01.12
10:44
(22) ну так это тупость, какой-то велосипед изобретать
проще было нарисовать форму внешнего отчёта, где можно выбрать документ
24 Fish
 
24.01.12
10:46
(21) Это жутко засекреченные мега-гуру разработчики. Им отладчик не нужен. Они сидят в подвалах фирмы 1С и пишут тексты при свете свечей. А потом простые быдлокодеры вбивают всё это в конфигуратор, и всё сразу работает :)))
25 Maxus43
 
24.01.12
10:47
(23) там делов форму нарисовать у отчета внешнего 2 минуты, больше на создание темы потратил... я именно так разрабатываю и отлаживаю печ формы
26 Vovan1975
 
24.01.12
10:47
да все просто блин... Весь код отчета/печатной формы располагается в модуле обработки. В обработке делается форма, цель которой - чтобы получить ссылку на документ и передать ее в модуль обработки...
Ты почитай справку к справочнику внешних обработок, там все достаточно подробно изложено...
27 zak555
 
24.01.12
10:50
(26) это что ли : ?

Справочник «Внешние  обработки, печатные формы, обработки по заполнению табличных частей»
Справочник содержит список произвольных обработок, дополнительных печатных форм, обработок для заполнения ТЧ объектов.

Общее описание

Произвольная обработка.

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



Обработка для заполнения ТЧ объектов.

Для обработок заполнения ТЧ необходимо указывать внешнюю обработку, список объектов и их ТЧ для которых необходимо использовать данную обработку.



Внешняя печатная форма.

Для подключаемых внешних печатных форм необходимо указывать:

внешнюю обработку
при необходимости, можно указать список дополнительных параметров, которые будут передаваться внешней обработке
список объектов, для которых данная печатная форма используется
для каждого объекта несколько отборы, при выполнении которых печатная форма становится доступной для использования с данным объектом
для каждого объекта свою отдельную печатную форму, но в списках печатных форм в объектах будет всегда появляться одинаковый пункт подменю
для каждого объекта встроенную печатную форму, которая будет заменена указанной внешней
Корректно зарегистрированная печатная форма будет выводиться в общем списке печатных форм объекта, вызываемого по кнопке «Печать». При этом форма будет помещена в конец этого списка, отделенная разделителем. Если подключаемая печатная форма заменяет стандартную, то она заменяется и показывается в списке стандартных печатных форм.

В форме списка справочника возможно выполнение переноса всех зарегистрированных дополнительных печатных форм между различными базами. Вызов формы переноса осуществляется с помощью кнопки «Экспорт / импорт». В данной форме следует указать имя файла, в котором (из которого) будет сохранен (получен)  список форм. Сохранение списка в файле осуществляется нажатием кнопки «Экспорт», соответственно получение - «Импорт».

Требования к подключению внешних обработок:

Произвольная обработка.

Любая внешняя обработка, с определенной основной формой.

Обработка для заполнения ТЧ объектов.

Внешняя обработка содержащая:

Необязательный реквизит «ДополнительныеПараметры» произвольного типа, которому будут передаваться дополнительные параметры примитивного типа ввиде структуры.
В модуле экспортную процедуру: Инициализировать(Объект,ИмяТабличнойЧасти,ТабличноеПолеОбъекта)
где:  

Объект. – ДокументОбъект, СправочникОбъект. От куда был произведен вызов процедуры заполнения внешней обработки;
ИмяТабличнойЧасти  – Строка. Имя табличной части, для которой вызвана обработка.
ТабличноеПолеОбъекта  – Элемент формы: Табличное поле. Табличное поле формы, для которого вызвана обработка.

А так же может иметь в своем составе :
макет «Параметры_Авторегистрации»,  используемый для автоматического заполнения принадлежности печатной формы в справочнике «Внешние обработки» состоящий из 2-х колонок – «полное имя метаданного» и «имя табличной части»

Внешняя печатная форма.

Внешняя обработка содержащая:

Необязательный реквизит «ДополнительныеПараметры» произвольного типа, которому будут передаваться дополнительные параметры примитивного типа ввиде структуры.
Реквизит «СсылкаНаОбъект», в который при вызове будет передана ссылка на объект, для которого необходимо выполнить печать.
Функция «Печать()» - без параметров,  возвращающая табличный документ.

А так же может иметь в своем составе :
макет «Параметры_Авторегистрации»,  используемый для автоматического заполнения принадлежности печатной формы в справочнике «Внешние обработки» состоящий из 2-х колонок – «полное имя метаданного» и «имя табличной части»
28 Maxus43
 
24.01.12
10:51
(27) да, вот главное:
Реквизит «СсылкаНаОбъект», в который при вызове будет передана ссылка на объект, для которого необходимо выполнить печать.
Функция «Печать()» - без параметров,  возвращающая табличный документ.
29 zak555
 
24.01.12
10:55
(28) ну так я о чём говорю
что можно было разместить этот реквизит на форме внешнего отчёте и в него выбирать нужный документ
и спокойно можно было бы отлаживать
30 БибиГон
 
24.01.12
10:59
(29) да ведь так и делают же. =)
31 zak555
 
24.01.12
11:00
(30) почему в конечных внешних печатных отчётов от 1с форм нет ?
32 Serg_1960
 
24.01.12
11:05
А почему шеф-повар в ресторане готовит еду в отдельном помещении? Я хочу видеть что и как у них там готовится для меня :(

:))
33 zak555
 
24.01.12
11:06
(32) фигню городишь
34 БибиГон
 
24.01.12
11:06
(31) встроенных в конфу или внешних?
35 hhhh
 
24.01.12
11:08
(33) потому что они по-другому отлаживают. Есть же вариант попроще. Находишь в конфе вызов процедуры Печать() и ставишь точку останова.
36 zak555
 
24.01.12
11:08
(34) они же поставляются от 1с, как внешние
а потом "встраиваются"
37 БибиГон
 
24.01.12
11:12
(36) смотрю внешнюю форму счет фактура 2012 для УТ. У формы есть реквизит СсылкаНаОбъект. Что не так?
38 zak555
 
24.01.12
11:13
ууууууууу
мега код нашёл :


Функция НапечататьВнешнююФорму(Ссылка, ИсточникМакета) Экспорт

   Перем ДополнительныеПараметры;
   
   ДвоичныеДанные = ИсточникМакета.СсылкаНаВнешнююОбработку.Принадлежность[ИсточникМакета.НомерСтроки - 1].ХранилищеВнешнейОбработки.Получить();
   
   // Получить дополнительные параметры внешней обработки
   ИсточникМакета.Свойство("ДополнительныеПараметрыОбработки", ДополнительныеПараметры);
   
   Если ДвоичныеДанные = Неопределено Тогда
       ДвоичныеДанные = ИсточникМакета.СсылкаНаВнешнююОбработку.ХранилищеВнешнейОбработки.Получить();
   КонецЕсли;
   
   Если ДвоичныеДанные = Неопределено Тогда
       Возврат Неопределено;
   КонецЕсли;
   
   ТабДокумент = Неопределено;
   
   ИмяФайла = ПолучитьИмяВременногоФайла("epf");
   Попытка
       ДвоичныеДанные.Записать(ИмяФайла);
       Обработка = ВнешниеОбработки.Создать(ИмяФайла);
       Обработка.СсылкаНаОбъект = Ссылка;
       
       // Передать внешней обработке дополнительные параметры
       Если ДополнительныеПараметры <> Неопределено Тогда
           
           // Если у внешней обработки есть реквизит для дополнительных параметров, присвоить ему значение
           Если НЕ Обработка.Метаданные().Реквизиты.Найти("ДополнительныеПараметры") = Неопределено Тогда
               Обработка.ДополнительныеПараметры = ДополнительныеПараметры;
           КонецЕсли;
           
       КонецЕсли;
       
       ТабДокумент = Обработка.Печать();
       УдалитьФайлы(ИмяФайла);
   Исключение
       ОбщегоНазначения.СообщитьОбОшибке(ОписаниеОшибки(),, "Не удалось сформировать внешнюю печатную форму!");
   КонецПопытки;
   
   Возврат ТабДокумент;
   
КонецФункции
39 БибиГон
 
24.01.12
11:13
+(37) делов то ее вывести на форму.
40 zak555
 
24.01.12
11:13
кто придумал доставать из хранилища, а потом удалять ?
41 zak555
 
24.01.12
11:14
(39) почему нет формы ?
вот в чём вопрос
42 БибиГон
 
24.01.12
11:15
(40) хранилище наше всё! =)
43 zak555
 
24.01.12
11:16
(42) так это же бестолково
44 Поpyчик-4
 
24.01.12
11:16
(40) Тупишь? Всю жизнь так было. Откуда ты вообще выполз и чем занимался раньше?
45 БибиГон
 
24.01.12
11:16
а как толково?
46 Поpyчик-4
 
24.01.12
11:17
(43) Толково в конфах от Камина, да?
47 БибиГон
 
24.01.12
11:17
(44) семерочник. :)
48 zak555
 
24.01.12
11:17
(45) смысл тогда хранить в хранилищ, чтоб для печати достать, сохранить, а потом удалить
49 БибиГон
 
24.01.12
11:18
кстати на УФ вовсю хранилища используются. :)
50 Maxus43
 
24.01.12
11:18
(43) это как временный файл, надо удалять а то забъёт винт хренью
51 zak555
 
24.01.12
11:18
(49) тоже достаёт, а потом удаляет ?
52 БибиГон
 
24.01.12
11:18
(48) достают только копию. (!)
53 Поpyчик-4
 
24.01.12
11:19
(48) Вернулся бы ты в свой клюшечный раздел  или почитай матчасть по организации хранения данных в 8.Х.
54 Maxus43
 
24.01.12
11:19
(51) ещё спроси зачем при обменах файл обмена сначала копируетс я в другое место и тока там считывается, потом удаляется.... зачем так сделано???)
55 zak555
 
24.01.12
11:20
(50) я понял, что это файл, который в темпе
56 БибиГон
 
24.01.12
11:21
(55)так в хранилище двоичные данные хранятся типа blob
57 zak555
 
24.01.12
11:22
(52) просто интересно
не уже ли нельзя было организовать так "хранение", чтоб ничего не сохранять, а потом удалять
58 БибиГон
 
24.01.12
11:24
разве можно удалить то чего нет?
59 ОбычныйЧеловек
 
24.01.12
11:24
(57) ну отчего-же нельзя - конечно можно, по принципу ТиСа например.
60 zak555
 
24.01.12
11:24
(58) развернуть в оперативку ?
61 БибиГон
 
24.01.12
11:25
(60)а развернуть откуда?
62 zak555
 
24.01.12
11:26
(61) из хранилища
63 БибиГон
 
24.01.12
11:27
в оперативке данные а форма находится в темпе. что не так?
64 БибиГон
 
24.01.12
11:28
разве форма может храниться в оперативке? может я туплю уже?
65 Maxus43
 
24.01.12
11:29
(64) всё что ты видиш на экране и не только - уже в оперативке, если уж на то пошло :)
66 Serg_1960
 
24.01.12
11:32
(может быть и не в тему, но...)

"смысл тогда хранить в хранилищах" - если Вы подумаете, то Вы сами найдете веские аргументы на свой вопрос. В самом деле это удобный механизм, когда обработки базы данных сохраняются в самой-же базе данных.

Это, как вопросы из серии "Почему конфигурации хранятся в базе данных?".
Надеюсь, Вы не будете спрашивать "Почему данные хранят в базе данных?" :)

PS: сорри, ТС, когда я слышу "детские" вопросы - мне тоже хочется подурачится и на вопрос "Почему..?" ответить - "Потому-что!" А что остаётся делать? Меня ведь никто из фирмы 1С не спрашивает "как это удобнее для вас сделать?" :)
67 zak555
 
24.01.12
11:32
т.е. в клиент-серверном варианте тоже получается создаётся отчёт на клиент и потом удаляется
68 zak555
 
24.01.12
11:34
было бы что-то типо того :

Обработка = ВнешниеОбработки.Создать((ХранилищеВнешнейОбработки.Получить())
69 БибиГон
 
24.01.12
11:40
(68) на УФ так не выйдет.
70 БибиГон
 
24.01.12
11:41
(65) да не, я не про то. Форма создается в темпе и печатается уже оттуда или можно печатать сразу из оперативки? :)
71 zak555
 
24.01.12
11:41
(69) на УФ должна только печатная страничка прийти на клиент
72 БибиГон
 
24.01.12
11:43
(71) через хранилище?
73 zak555
 
24.01.12
11:46
(72) да как угодно, лишь бы не вылазили из БД =)
74 zak555
 
24.01.12
11:47
*не вылазила