Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Добавление реквизита в печатную форму

Здравствуйте, можно узнать, какие действия нужно предпринять, чтобы внести изменения в макет печатной формы(ПФ_MXL_РеализацияТоваров) документа "РеализацияТоваровУслуг".

Знаю, что нужно внести в одну из ячеек макета печатной формы(С заполнением типа "Параметр") ссылку на соответствующий реквизит, далее прописать в коде заполнение для этой ячейки печатной формы.

Вопросы сделующие:
Например, нужно добавить в печатную форму реквизит АдресДоставки(Является реквизитом объекта "РеализацияТоваровУслуг"), я выбираю ячейку(или несколько ячеек), туда записываю <АдресДоставки>, а потом не знаю, какую функ-ю редактировать в модуле менеджера?
Ответ:
Начните с обработчика нажатия на кнопку, на форме. Дальше по коду будет понятно, где поставить точки останова.
Вопрос: Управляемые формы, получить реквизит документа в модуле формы

Добрый день!
Вопрос такой - как находясь в модуле произвольной формы, получить реквизит документа этой формы? Т.е как прописать сюда

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)    КонтрЗадачи.Параметры.УстановитьЗначениеПараметра("Контр",СсылкаКонтр);
КонецПроцедуры

вместо "СсылкаКонтр" некий прямой путь?(что-то вроде Объект.реквизиты и т.д.) Сейчас это параметр формы, который передается на нее при ее вызове. Реквизит "Объект" у формы отсутсвует.
Ответ: () тут важна не просто форма, а объект или хотя бы ссылка на объект, выбранного типа. Толку по доступа к реквизиту на форме, если у этого реквизита нет никакой связи с объектом?
Вопрос: Печать в РТиУ через комплект документов на принтер формы из внешней печатной формы

Добрый день!
Подключил внешнюю печатную форму и теперь при печати в РТиУ через стандартную обработку печати комплекта документов возникает ошибка "Метод объекта не обнаружен (Печать)". Когда делал ВПФ, то расположил функцию Печать() в модуле формы.
Код:
Функция Печать(ИдентификаторКоманды,ОбъектыНазначения) Экспорт
Все корректно отрабатывает, кроме этого.
Ответ:
Добрый день!

Переработал обработку и расположил Печать() в модуле объекта, но все-равно возникает ошибка:

Вот что в модуле объекта:
Код:
Функция СведенияОВнешнейОбработке() Экспорт
    ПараметрыРегистрации = Новый Структура;
    МассивНазначений = Новый Массив;
    МассивНазначений.Добавить("Документ.РеализацияТоваровУслуг"); //Указываем документ к которому делаем внешнюю печ. форму

    ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма"); //может быть - ЗаполнениеОбъекта,
                                                           //ДополнительныйОтчет, СозданиеСвязанныхОбъектов...
   
   
    ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
    ПараметрыРегистрации.Вставить("Наименование", "Бланк гарантии"); //имя под которым обработка
                                                            // будет зарегестрирована в справочнике внешних обработок
    ПараметрыРегистрации.Вставить("БезопасныйРежим", ЛОЖЬ);
    ПараметрыРегистрации.Вставить("Версия", "1.0");   
    ПараметрыРегистрации.Вставить("Информация", "Дополнительная печатная форма к документу РТУ");
   
    ТаблицаКоманд = ПолучитьТаблицуКоманд();
   

    ДобавитьКоманду(ТаблицаКоманд, "Бланк гарантии", "БланкГарантии", "ВызовКлиентскогоМетода", Истина, "ПечатьMXL");
    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
   
    Возврат ПараметрыРегистрации;
КонецФункции

Функция ПолучитьТаблицуКоманд()
  Команды = Новый ТаблицаЗначений;
  Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));//как будет выглядеть описание
                                                                           //печ.формы для пользователя

  Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка")); //имя макета печ.формы
  Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка")); //ВызовСерверногоМетода
  Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
  Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
  Возврат Команды;
КонецФункции

Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")

  НоваяКоманда = ТаблицаКоманд.Добавить();
  НоваяКоманда.Представление = Представление; 
  НоваяКоманда.Идентификатор = Идентификатор;
  НоваяКоманда.Использование = Использование;
  НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
  НоваяКоманда.Модификатор = Модификатор;

КонецПроцедуры

Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
   
    УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "БланкГарантии", "Бланк гарантии)", СформироватьПечатнуюФорму(МассивОбъектов[0], ОбъектыПечати));
   
КонецПроцедуры // Печать()


Функция ВернутьМакет()
   
    Макет = ЭтотОбъект.ПолучитьМакет("ГарантийныйТалон");
   
    Возврат Макет;
   
КонецФункции

Функция СформироватьПечатнуюФорму(МассивОбъектов, ОбъектыПечати) Экспорт
    ТабДок = Новый ТабличныйДокумент;
   
    ТекстЗапроса =
    "ВЫБРАТЬ
    |    ЕСТЬNULL(МЛ_ПринадлежностиАвтомобилей.Комплектация, """") КАК Применимость,
    |    ВложенныйЗапрос.Номенклатура.Наименование КАК Номенклатура,
    |    ВложенныйЗапрос.Номенклатура.Артикул КАК Артикул,
    |    ВложенныйЗапрос.НомерСтроки КАК НомерСтроки
    |ИЗ
    |    (ВЫБРАТЬ
    |        РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
    |        РеализацияТоваровУслугТовары.Ссылка КАК Ссылка,
    |        РеализацияТоваровУслугТовары.Характеристика КАК Характеристика,
    |        РеализацияТоваровУслугТовары.Склад КАК Склад,
    |        МИНИМУМ(РеализацияТоваровУслугТовары.НомерСтроки) КАК НомерСтроки
    |    ИЗ
    |        Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
    |    ГДЕ
    |        РеализацияТоваровУслугТовары.Ссылка В(&МассивОбъектов)
    |   
    |    СГРУППИРОВАТЬ ПО
    |        РеализацияТоваровУслугТовары.Ссылка,
    |        РеализацияТоваровУслугТовары.Номенклатура,
    |        РеализацияТоваровУслугТовары.Характеристика,
    |        РеализацияТоваровУслугТовары.Склад) КАК ВложенныйЗапрос
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МЛ_ПринадлежностиАвтомобилей КАК МЛ_ПринадлежностиАвтомобилей
    |        ПО ВложенныйЗапрос.Номенклатура.АртикулЧ = МЛ_ПринадлежностиАвтомобилей.АртикулЧ
    |
    |УПОРЯДОЧИТЬ ПО
    |    ВложенныйЗапрос.Ссылка,
    |    НомерСтроки
    |ИТОГИ
    |    МАКСИМУМ(Артикул)
    |ПО
    |    Номенклатура";
    Запрос = Новый Запрос;
    Запрос.Текст = ТекстЗапроса;
    Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
   
    Выборка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
   
    Выборка.Следующий();
    ВыборкаДетальныеЗаписи = Выборка.Выбрать();
    Сч = 1;
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        Если Сч>1 Тогда
            Если Ложь Тогда
                Строка = " ";
            КонецЕсли;
            Строка.Применимость = Строка.Применимость + "; " + Символы.ПС + Строка(ВыборкаДетальныеЗаписи.Применимость);
        Иначе
            ТЗ = Новый ТаблицаЗначений;
            ТЗ.Колонки.Добавить("Применимость");
            ТЗ.Колонки.Добавить("Номенклатура");
            Строка = ТЗ.Добавить();
            Строка.Применимость = Строка(ВыборкаДетальныеЗаписи.Применимость);
            Строка.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура;
        КонецЕсли;
        Сч = Сч+1;
    КонецЦикла;
   
    Макет = ВернутьМакет();   
    Шапка = Макет.ПолучитьОбласть("Шапка");
    Шапка.Параметры.Заполнить(ТЗ[0]);
   
    //Шапка.Параметры.СерийныйНомер = "";
    Шапка.Параметры.ДатаПроизводства = НачалоДня(ТекущаяДата())-86400*3;
    Шапка.Параметры.Дата = ТекущаяДата();
    ТабДок.Вывести(Шапка);
   
    ТабДок.ОтображатьСетку = Ложь;
    ТабДок.Защита = Ложь;
    ТабДок.ТолькоПросмотр = Ложь;
    ТабДок.ОтображатьЗаголовки = Ложь;

    Возврат ТабДок;
КонецФункции
--- Объединение сообщений, 9 янв 2017 ---
Спасибо, разобрался. Нужно было указать "ВызовСерверногоМетода".
Вопрос: Создание внешней печатной формы с возможностью передачи параметров

Пытаюсь переделать внешнюю печатную форму из 1С 8.2 под версию 8.3, в связи с чем возникают ошибки..
Помогите, пожалуйста, разобраться в коде. При присоединении отчета выдает ошибку "Метод объекта не обнаружен (Печать)".
Все дело в форме через которую передаются параметры, но я впервые программирую на 1С и не знаю что не так ...

Код 1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
//ПОДГОТОВКА РЕГИСТРАЦИИ ГЛОБАЛЬНОГО ОТЧЕТА 
Функция ПолучитьНазначениеОбработки ()
    Массив = Новый Массив;
    Массив.Добавить("Документ.ТребованиеНакладная");
    Возврат Массив;
КонецФункции
 
Функция СведенияОВнешнейОбработке() Экспорт 
 
ПараметрыРегистрации = Новый Структура; 
ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма"); //Варианты: "ДополнительнаяОбработка", "ДополнительныйОтчет", "ЗаполнениеОбъекта", "Отчет", "ПечатнаяФорма", "СозданиеСвязанныхОбъектов" 
ПараметрыРегистрации.Вставить("назначение", ПолучитьНазначениеОбработки ());
ПараметрыРегистрации.Вставить("Наименование", "Акт НА СПИСАНИЕ ПРОЧИХ МАТЕРИАЛОВ (фор. С-2)"); 
ПараметрыРегистрации.Вставить("Версия", "1.0"); //"1.0" 
ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина); //Варианты: Истина, Ложь 
ПараметрыРегистрации.Вставить("Информация", "Акт на списание прочих материалов"); 
 
ТаблицаКоманд = ПолучитьТаблицуКоманд();
 
ДобавитьКоманду(ТаблицаКоманд, "Акт НА СПИСАНИЕ ПРОЧИХ МАТЕРИАЛОВ (фор. С-2)", "ПечатьАКТС2", "ВызовСерверногоМетода", Ложь, "ПечатьMXL");
ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
 
Возврат ПараметрыРегистрации;
КонецФункции
 
 
Функция ПолучитьТаблицуКоманд()
Команды = Новый ТаблицаЗначений;
Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));//как будет выглядеть описание печ.формы для пользователя
Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка")); //имя макета печ.формы
Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка")); //ВызовСерверногоМетода
Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
Возврат Команды;
КонецФункции
 
Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
 
НоваяКоманда = ТаблицаКоманд.Добавить();
НоваяКоманда.Представление = Представление; 
НоваяКоманда.Идентификатор = Идентификатор;
НоваяКоманда.Использование = Использование;
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
НоваяКоманда.Модификатор = Модификатор;
 
КонецПроцедуры
        
&НаКлиенте
 
 
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
 
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "АКТ НА СПИСАНИЕ ПРОЧИХ МАТЕРИАЛОВ (форма С-2)", "Акт на списание", СформироватьПечатнуюФорму("Форма", МассивОбъектов[0], ОбъектыПечати));
 
КонецПроцедуры // Печать()
 
&НаСервере
Функция ПечатьАКТС2(ИмяМакета)
    
 
    Форма=ЭтотОбъект.ПолучитьФорму("Форма");
    Форма.ОткрытьМодально();
    ЭтотОбъект.Печать();
    
    
 
    
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("Ссылка", СсылкаНаОбъект);
    Запрос.Текст = 
    "ВЫБРАТЬ
    |   ТребованиеНакладная.Ссылка,
    |   ТребованиеНакладная.ВерсияДанных,
    |   ТребованиеНакладная.ПометкаУдаления,
    |   ТребованиеНакладная.Номер,
    |   ТребованиеНакладная.Дата,
    |   ТребованиеНакладная.Проведен,
    |   ТребованиеНакладная.Организация,
    |   ТребованиеНакладная.Склад,
    |   ТребованиеНакладная.Ответственный,
    |   ТребованиеНакладная.Комментарий,
    |   ТребованиеНакладная.СчетЗатрат,
    |   ТребованиеНакладная.Субконто1,
    |   ТребованиеНакладная.ПодразделениеЗатрат,
    |   ТребованиеНакладная.Субконто2,
    |   ТребованиеНакладная.Субконто3,
    |   ТребованиеНакладная.ОтражениеВУСН,
    |   ТребованиеНакладная.НДСвСтоимостиТоваров,
    |   ТребованиеНакладная.Контрагент,
    |   ТребованиеНакладная.СчетСписанияНДС,
    |   ТребованиеНакладная.СубконтоСписанияНДС1,
    |   ТребованиеНакладная.СубконтоСписанияНДС2,
    |   ТребованиеНакладная.СубконтоСписанияНДС3,
    |   ТребованиеНакладная.ДляСписанияНДСиспользоватьСчетИАналитикуУчетаЗатрат,
    |   ТребованиеНакладная.СчетаУчетаЗатратВТаблице,
    |   ТребованиеНакладная.РучнаяКорректировка,
    |   ТребованиеНакладная.Материалы.(
    |       Ссылка,
    |       НомерСтроки,
    |       Номенклатура,
    |       Счет,
    |       КоличествоМест,
    |       ЕдиницаИзмерения,
    |       Коэффициент,
    |       Количество,
    |       СтранаПроисхождения,
    |       НомерГТД,
    |       ОтражениеВУСН,
    |       СчетЗатрат,
    |       ПодразделениеЗатрат,
    |       НоменклатурнаяГруппа,
    |       СтатьяЗатрат,
    |       ДокументОприходования,
    |       Себестоимость,
    //|       ПричинаВыбытия
    |   )
    //,
    //| ТребованиеНакладная.МатериалыЗаказчика.(
    //|     Ссылка,
    //|     НомерСтроки,
    //|     Номенклатура,
    //|     Счет,
    //|     КоличествоМест,
    //|     ЕдиницаИзмерения,
    //|     Коэффициент,
    //|     Количество,
    //|     СчетПередачи
    //| )
    |ИЗ
    |   Документ.ТребованиеНакладная КАК ТребованиеНакладная
    |ГДЕ
    |   ТребованиеНакладная.Ссылка = &Ссылка";
    
    Результат = Запрос.Выполнить();
    ВыборкаДетальныеЗаписи = Результат.Выбрать();
    ТабДокумент   = Новый ТабличныйДокумент();
    
       
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        // Вставить обработку выборки ВыборкаДетальныеЗаписи
        Макет         = ПолучитьМакет("Макет");
        //Макет = Документы.РасходнаяНакладная.ПолучитьМакет("Основной");
        Область = Макет.ПолучитьОбласть("Шапка");
        //ОбластьМакета.Параметры.Заголовок    = "А К Т  №"+Строка(ВыборкаДетальныеЗаписи.Номер);
        //ОбластьМакета.Параметры.ДатаДок        = Формат( ВыборкаДетальныеЗаписи.Дата, "ДФ=dd.MM.yy");
        //ОбластьМакета.Параметры.Организация    = ВыборкаДетальныеЗаписи.Организация.Наименование;
        //ОбластьМакета.Параметры.подразделение  = ВыборкаДетальныеЗаписи.Склад.Наименование;
        //ОбластьМакета.Параметры.МОЛ            = МОЛ.Наименование;
        //ОбластьМакета.Параметры.МОЛД          =МОЛД;          
        //ОбластьМакета.Параметры.МОЛ               =МОЛ.Наименование;
        Область.Параметры.Член1Д=Член1Д;            
        Область.Параметры.Член1=Член1.Наименование; 
        Область.Параметры.Член2Д=Член2Д;            
        Область.Параметры.Член2=Член2.Наименование;     
    
 
 
        //ОбластьМакета.Параметры.Участок        = ВыборкаДетальныеЗаписи.ПодразделениеЗатрат.Наименование;
        //ОбластьМакета.Параметры.КорСчет        = ВыборкаДетальныеЗаписи.СчетЗатрат.Код;
        //ОбластьМакета.Параметры.Аналитика      = ?(ВыборкаДетальныеЗаписи.Субконто1=Неопределено,"",    ВыборкаДетальныеЗаписи.Субконто1.Наименование)+
        //?(ВыборкаДетальныеЗаписи.Субконто2=Неопределено,"","/"+ВыборкаДетальныеЗаписи.Субконто2.Наименование)+
        //?(ВыборкаДетальныеЗаписи.Субконто3=Неопределено,"","/"+ВыборкаДетальныеЗаписи.Субконто3.Наименование);
        //ОбластьМакета.Параметры.ДатаСоставления= Формат( ВыборкаДетальныеЗаписи.Дата, "ДФ=dd.MM.yy");
        
        ТабДокумент.Вывести(Область);
        //выведем область "Шапка" в табличный документ
        ТабДокумент.Вывести(Макет.ПолучитьОбласть("Шапка"));
        
        // Строчки    
        СтруктураПолей = Новый Структура;
        СтруктураПолей.Вставить("Материал",     "Номенклатура");        
        СтруктураПолей.Вставить("Наименование", "Номенклатура.НаименованиеПолное");
        СтруктураПолей.Вставить("Единица",      "Номенклатура.БазоваяЕдиницаИзмерения");
        СтруктураПолей.Вставить("Код",          "Номенклатура.Код");
        СтруктураПолей.Вставить("ЕдиницаИзмеренияКод",          "Номенклатура.БазоваяЕдиницаИзмерения.Код");
        
        СтруктураПолей.Вставить("Колво",        "Количество");
        
        
        
        ТаблицаМатериалов = ОбщегоНазначения.СформироватьЗапросПоТабличнойЧасти(СсылкаНаОбъект, "Материалы", СтруктураПолей).Выгрузить();
        ТаблицаМатериалов.Свернуть("Материал,Наименование,Единица,Код,ЕдиницаИзмеренияКод", "Колво");
        
        // Поиск сумм списания активов для заполнения Цены и Суммы
        ТаблицаСуммСписания = БухгалтерскийУчет.ПолучитьСуммуСписанияАктивов(СсылкаНаОбъект);
        
        НомерТекущий = 1;
        Для Каждого СтрокаТЧ Из ТаблицаМатериалов Цикл
            ОбластьМакета = Макет.ПолучитьОбласть("Строка");
            ОбластьМакета.Параметры.Заполнить(СтрокаТЧ);
            ОбластьМакета.Параметры.НомерТекущий = НомерТекущий;
            СтрокаСуммСписания =  ТаблицаСуммСписания.Найти(СтрокаТЧ.Материал, "Номенклатура");
            ////Если СтрокаСуммСписания = Неопределено Тогда
            ////    ОбластьМакета.Параметры.Цена = 0;
            ////    ОбластьМакета.Параметры.Сумма = 0;
            ////    //ОбластьМакета.Параметры.Причина = "";
            ////Иначе
            ////    Цена = ?(СтрокаСуммСписания.Количество = 0, 0, СтрокаСуммСписания.Сумма / СтрокаСуммСписания.Количество);
            ////    ОбластьМакета.Параметры.Цена  = Цена;
            ////    ОбластьМакета.Параметры.Сумма = Цена * СтрокаТЧ.Колво;
            ////    ОбластьМакета.Параметры.Причина = ВыборкаДетальныеЗаписи.комментарий ;
            //КонецЕсли;
            Область.Параметры.Причина = "";
             
            ТабДокумент.Вывести(Область);
             НомерТекущий = НомерТекущий + 1;
            
            
        КонецЦикла;
        Область = Макет.ПолучитьОбласть("Шапка");
            
        Область = Макет.ПолучитьОбласть("Подвал");
                
        ОбластьМакета.Параметры.Член1Д=Член1Д;          
        ОбластьМакета.Параметры.Член1=Член1.Наименование;   
        ОбластьМакета.Параметры.Член2Д=Член2Д;          
        ОбластьМакета.Параметры.Член2=Член2.Наименование;       
        ТабДокумент.Вывести(Область);
        Возврат ТабДокумент;
    КонецЦикла;
    
 
    
КонецФункции    //печатьАКТС2
 
    
     //получить таблицу команд (команды которые будут поставялться обработкой)
     
    
#КонецЕсли
В архиве обе печатные формы, под 8.2 и переделанная 8.3
Ответ: У вас внешняя печатная форма, Встречается ЭтотОбъект.Ссылка и СсылкаНаОбъект приведите все к ссылкенаобъект. Далее в запросе у вас параметр
Код 1C
1
 Запрос.УстановитьПараметр("Ссылка", СсылкаНаОбъект);
а вот ссылку лучше передавать в массивобъектов.
Код 1C
1
2
|ГДЕ
    |   ТребованиеНакладная.Ссылка = &Ссылка";
Вопрос: вывести картинку в печатной форме

Добрый день!

Нужно вывести картинки в таблице печатной формы.
Документ заказ у него в таб.части есть номенклатура, у номенклатуры есть справочник НоменклатураПрисоединенныеФайлы, там есть реквизит - ФайлХранилище с типом хранилище значений.

Как мне теперь правильно все связать, чтобы выводилась картинка у каждой номенклатуры в печатной форме
Ответ: () спасибо тебе, милый человек) понят, где искать
Вопрос: Запрос дополнительных реквизитов справочника

Здравствуйте! Очень нужна помощь! 1С 8.3, УТ 11.1. Как запросом получить дополнительные реквизиты добавленные справочнику через режим предприятия?
Ответ:
У любого. Это код для печатной формы, которая будет вызываться из документа заказ клиента, для распечатки
Вопрос: Печатная форма 1с.WMS

Я новичок так что не ругайте за странные вопросы))
Когда заливаю внешнюю печатную форму в 1с ругается: "Для команды Печать этикеток не определен способ запуска"
как решить проблему?

Вложения:

  • Размер файла:
    9,8 КБ
    Просмотров:
    4
Ответ:
Взял ваш код, добавил свой, теперь ругается:
{ВнешняяОбработка.ВнешняяОбработка2.МодульОбъекта(68)}: Недостаточно фактических параметров
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, НСтр("ru = 'Печатная форма:Печать этикетки'"), СформироватьПечатнуюФорму(МассивОбъектов[0], ОбъектыПечати));


Код:
Функция СведенияОВнешнейОбработке() Экспорт
 
    ПараметрыРегистрации = Новый Структура;
 
    ПараметрыРегистрации.Вставить("Вид"            , "ПечатнаяФорма");
    ПараметрыРегистрации.Вставить("Назначение"     , ПолучитьНазначениеОбработки());
    ПараметрыРегистрации.Вставить("Наименование"   , НСтр("ru = 'Печатная форма:Печать этикетки'"));
    ПараметрыРегистрации.Вставить("Версия"         , "1.0");
    ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
    ПараметрыРегистрации.Вставить("Информация"     , НСтр("ru = 'Печать этикетки'"));
 
    ТаблицаКоманд = ПолучитьТаблицуКоманд();
 
    ДобавитьКоманду(ТаблицаКоманд,
                    НСтр("ru = 'Печать этикетки'"),
                    "ЗаказКлиентаДляСборкиНаСклад",
                    "ВызовСерверногоМетода",
                    Истина,
                    "ПечатьMXL");
 
    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
 
    Возврат ПараметрыРегистрации;
 
КонецФункции

// Получает назначение обработки.
// ................................................................................
Функция ПолучитьНазначениеОбработки()
 
    Назначение = Новый Массив;
    Назначение.Добавить("Документ.усЗаказНаОтгрузку");
 
    Возврат Назначение;
 
КонецФункции

// Получает таблицу команд.
// ................................................................................
Функция ПолучитьТаблицуКоманд()
 
    Команды = Новый ТаблицаЗначений;
    Команды.Колонки.Добавить("Представление"       , Новый ОписаниеТипов("Строка"));
    Команды.Колонки.Добавить("Идентификатор"       , Новый ОписаниеТипов("Строка"));
    Команды.Колонки.Добавить("Использование"       , Новый ОписаниеТипов("Строка"));
    Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
    Команды.Колонки.Добавить("Модификатор"         , Новый ОписаниеТипов("Строка"));
 
    Возврат Команды;
 
КонецФункции

// Добавляет таблицу команд.
// ................................................................................
Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
 
    НоваяКоманда                      = ТаблицаКоманд.Добавить();
    НоваяКоманда.Представление        = Представление;
    НоваяКоманда.Идентификатор        = Идентификатор;
    НоваяКоманда.Использование        = Использование;
    НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
    НоваяКоманда.Модификатор          = Модификатор;
 
КонецПроцедуры

Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
   
    УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, НСтр("ru = 'Печатная форма:Печать этикетки'"),  СформироватьПечатнуюФорму(МассивОбъектов[0], ОбъектыПечати));
   
КонецПроцедуры // Печать()

Функция СформироватьПечатнуюФорму(МассивОбъектов, ОбъектыПечати)
   
    ТабличныйДокумент = Новый ТабличныйДокумент;
    ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ";
    ДанныеДляПечати = ПолучитьДанныеДляПечатнойФормы(МассивОбъектов);
    ЗаполнитьТабличныйДокумент(ТабличныйДокумент, ДанныеДляПечати, ОбъектыПечати);
   
    Возврат ТабличныйДокумент;
   
КонецФункции

Функция ПолучитьДанныеДляПечатнойФормы(МассивОбъектов)Экспорт
   
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    усСтрокаЗаказаНаОтгрузку.Номенклатура.Наименование КАК Наименование,
    |    усСтрокаЗаказаНаОтгрузку.Номенклатура.Артикул КАК Артикул,
    |    усСтрокаЗаказаНаОтгрузку.Количество КАК Количество,
    |    усЗаказНаОтгрузку.НомерКИС КАК НомерКИС,
    |    усЗаказНаОтгрузку.ДатаОтгрузки КАК ДатаОтгрузки,
    |    усЗаказНаОтгрузку.Контрагент КАК Изготовитель,
    |    усЗаказНаОтгрузку.Ссылка КАК Ссылка
    |ИЗ
    |    Документ.усЗаказНаОтгрузку КАК усЗаказНаОтгрузку
    |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.усСтрокаЗаказаНаОтгрузку КАК усСтрокаЗаказаНаОтгрузку
    |        ПО усЗаказНаОтгрузку.Ссылка = усСтрокаЗаказаНаОтгрузку.Владелец
    |ГДЕ
    |    усЗаказНаОтгрузку.Ссылка = &Ссылка";
   
    Запрос.УстановитьПараметр("Ссылка", МассивОбъектов);
   
    ПакетРезультатовЗапроса = Запрос.ВыполнитьПакет();
    СтруктураДанныхДляПечати = Новый Структура;
    СтруктураДанныхДляПечати.Вставить("РезультатПоЗаголовку",     ПакетРезультатовЗапроса[0]);
    Возврат СтруктураДанныхДляПечати;
   
КонецФункции // ()

Процедура ЗаполнитьТабличныйДокумент(ТабличныйДокумент, ДанныеДляПечати, ОбъектыПечати) Экспорт
   
    ВыборкаДанныеПечати = ДанныеДляПечати.РезультатПоЗаголовку.Выбрать();
    МакетОбработки = ПолучитьМакет("Макет");
   
    //заполняем шапку
    ОбластьШапка = МакетОбработки.ПолучитьОбласть("Шапка");
   
    Пока ВыборкаДанныеПечати.Следующий() Цикл
        ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
        НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;
       
        ОбластьШапка.Параметры.Наименование = ВыборкаДанныеПечати.Наименование;
        ОбластьШапка.Параметры.КодSAP = ВыборкаДанныеПечати.Артикул;   
        ОбластьШапка.Параметры.Количество = ВыборкаДанныеПечати.Количество;       
        ОбластьШапка.Параметры.Контрагент = ВыборкаДанныеПечати.Изготовитель;
        ОбластьШапка.Параметры.ДатаОтгрузки = ВыборкаДанныеПечати.ДатаОтгрузки;
        ОбластьШапка.Параметры.НомерКИС = ВыборкаДанныеПечати.НомерКИС;
       
        ТабличныйДокумент.Вывести(ОбластьШапка);
       
    КонецЦикла;
   
    УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, ВыборкаДанныеПечати.Ссылка);
   
    ТабличныйДокумент.АвтоМасштаб = Истина;
   
КонецПроцедуры

Вопрос: Не сходится сумма в документе и в печатной форме

Здравствуйте.
1с Аптека.Больничная аптека, редакция 1.1 (1.1.1.2)
В документе "Отпуск в отделение" в табличной части у позиции сумма одна, а на печатной форме другая. Смотрю - не могу понять откуда цена берется. Подскажите.
--- Объединение сообщений, 9 апр 2015 ---
модуль

Вложения:

  • Размер файла:
    29,9 КБ
    Просмотров:
    13
Ответ:
Добрый день!
Помогите пожалуйста как переписать вывод печатной формы.Наша проблема один в один с той, что 13 апреля 2015 года
Вопрос: Печатная форма доп.соглашения ЗУП 2.5

Всем доброго времени суток. Имею обработку внешнюю, которая вызывает для документа Кадровое перемещение печатную форму доп.соглашения... Не могу разобраться, в чём ошибка, но если в документе больше 3 сотрудников, то по каким то непонятным причинам обработка делает по 6 документов на каждого. Получившиеся документы абсолютно идентичны... Во вложении прикрепил файл обработки, ЗУП типовая. Может подскажет кто, в чём косяк?
Ответ: DEaD_EGOR, каждого сотрудника и каждой должности в документе выводит печатную форму

Добавлено через 8 минут
Табличная часть РАботники Организации
 Сотрудник 
 Иванов 
 Петров 

Табличная часть Начисления
 СотрудникДолжность 
 ИвановТокарь 
 ПетровСлесарь 

Петров, Иванов, Токарь, Слесарь все = 1;

то что написано в вашей обработке (или декартово подможество)
(Петров + Иванов) * (Токарь + Слесарь) = 4 печатных формы

Добавлено через 4 минуты
Сделайте вот так

Заменить это
1C
1
    Для Каждого Строка из РО Цикл //Строка 404
на вот это:
1C
1
    Для Каждого Строка Из Начисления Цикл //Строка 428
И вот этот цикл внутри удалите
1C
1
 Для Каждого Строка Из Начисления Цикл //Строка 428
и его окончание
1C
1
    КонецЦикла; //Строка 466
Вопрос: Дополнительные реквизиты

Суть вопроса: есть документ, на форме элемента задействован доп. реквизит, редактируемый пользователем. Как программно получить значение этого реквизита в процедуре "перед сохранением" (документ ни разу не сохранен).
Платформа crm + erp 2.х....
Ответ:
Сообщение от Dethmontt
Что такое доп. реквизит?
Добавлено через 1 минуту
Механизм дополнительных реквизитов из Библиотеки Стандартных Подсистем ?
Да, он.