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

Доброго времени суток. Имеем 1С:Предприятие 8.3 (8.3.6.2152) режим управляемых форм.
Для справочника "Номенклатура" изменили состав дополнительных реквизитов. На форме элемента справочника эти дополнительные реквизиты, насколько я понял, выводятся сюда - ГруппаДополнительныеРеквизиты.

Подскажите пожалуйста, как можно разместить эти реквизиты в нужном мне порядке и месте.
Ответ:
Спасибо за функцию, теперь уже только завтра присмотрюсь к ней. Касаемо вопроса - с реквизитами всё так, но их слишком много и хочется их сгруппировать по неким логическим группам, возможно даже на нескольких страницах сделать.
Вопрос: Дополнительные внешние печатные формы (Справочник Номенклатура)

Стоит задача сформировать значение поля Артикул, по определенной маске. Делаю на основе внешней печатной формы вызов своей формы. Проблема заключается в том, что я не могу понять как обратиться к ещё не записанной карточке номенклатуры. СсылкаНаОбъект тот же СправочникСсылка.Номенклатура, но у этой ссылке нет методов ПолучитьОбъект() и ПолучитьФорму(), а вот когда карточка записана, то всё работает...
Код:
#Если Клиент Тогда

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

   
    Исключение
    //Когда нажимает кнопку "Добавить", не могу получить объект, просим пользователя снаячала записать карточку с любым артикулом
        Сообщить("Запишите карточку Номенклатуры перед формированием Артикула");
   
    КонецПопытки;    

КонецФункции // Печать()

#КонецЕсли
Ответ:
Это тупиковый путь, в тупик вы собственно и пришли.
Можно попробовать использовать внешнюю обработку заполнения табличных частей, она хотя бы знает про объект, который еще не записан в БД.
Вопрос: Запрос дополнительных реквизитов справочника

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

Здравствуйте! В договоре на поставку покупатель и реквизиты его в печатной форме прописаны автоматически, а поставщик просто написан в Word, но поставщика две организации, как проще сделать, чтоб и организация поставщика и реквизиты подставлялись автоматически, выбирая из этих двух?
Ответ:
Скачал с инфостарта.
Внешняя печатная форма договора с покупателем.
Я привязал к ЗаказуПокупателя..

Вложения:

  • Размер файла:
    56 КБ
    Просмотров:
    32
Вопрос: Внешняя печатная форма и ввод даты, на которую должна быть заполнена форма

Добрый день.
Задача к справочнику Сотрудники (ЗиК 3.1) сделать внешнюю печатную форму, которая заполняется кадровыми данными сотрудника НА УКАЗАННУЮ ДАТУ. Дата должна вводиться при формировании печатной формы. Пока было без запретам на модальные окна, все работало. Теперь не могу понять, как ввести дату отчета и затем сформировать отчет.
Ответ:
С сотрудни
--- Объединение сообщений, 9 окт 2017 ---
Вопрос: Печать в РТиУ через комплект документов на принтер формы из внешней печатной формы

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

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

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

    ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма"); //может быть - ЗаполнениеОбъекта,
                                                           //ДополнительныйОтчет, СозданиеСвязанныхОбъектов...
   
   
    ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
    ПараметрыРегистрации.Вставить("Наименование", "Бланк гарантии"); //имя под которым обработка
                                                            // будет зарегестрирована в справочнике внешних обработок
    ПараметрыРегистрации.Вставить("БезопасныйРежим", ЛОЖЬ);
    ПараметрыРегистрации.Вставить("Версия", "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с Аптека.Больничная аптека, редакция 1.1 (1.1.1.2)
В документе "Отпуск в отделение" в табличной части у позиции сумма одна, а на печатной форме другая. Смотрю - не могу понять откуда цена берется. Подскажите.
--- Объединение сообщений, 9 апр 2015 ---
модуль

Вложения:

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

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

Вложения:

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


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

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

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

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

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

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

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

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