Показано с 1 по 6 из 6
Комбинированный просмотр
-
23.10.2014, 14:45 #1
- Регистрация
- 29.01.2010
- Сообщений
- 1212
- Сказал(а) спасибо
- 30
- Поблагодарили 261 раз(а) в 245 сообщениях
Подскажите пожалуйста, как из внешней печатной формы сделать документ, чтобы он хранился в базе?
еобходимо добавить новый документ ГТ в базу
Заходишь в конфигуратор, устанавливаешь режим поддержки - "с возможностью изменений" и создаешь новый документ.
Но если сам не шаришь - найми за миску юшки 1Снига из франча, он такую фигню сделат за 15 минут (за одну миску юшки со шматом сала)
-
24.10.2014, 08:39 #2
- Регистрация
- 11.03.2009
- Адрес
- Kazahstan
- Сообщений
- 3
- Сказал(а) спасибо
- 3
- Поблагодарили 0 раз(а) в 0 сообщениях
Вот код внешней печатной формы:
Функция Печать() Экспорт
ЗапросШапка = Новый Запрос;
ЗапросШапка.УстановитьПар� �метр("ТекущийДокумент", ЭтотОбъект.СсылкаНаОбъект) ;
ЗапросШапка.Текст =
"ВЫБРАТЬ
| Дата,
| Контрагент КАК Получатель,
| Организация КАК Поставщик,
| СтруктурноеПодразделение,
| Организация
|ИЗ
| Документ.РеализацияТоваро� �Услуг КАК РеализацияТоваровУслуг
|
|ГДЕ
| РеализацияТоваровУслуг.Сс� �лка = &ТекущийДокумент";
Шапка = ЗапросШапка.Выполнить().Выб рать();
Шапка.Следующий();
СтруктурнаяЕдиницаОрганиз ация = ОбщегоНазначения.Получить� �труктурнуюЕдиницу(Шапка.О� �ганизация, Шапка.СтруктурноеПодразде� �ение);
СведенияОПоставщике = ОбщегоНазначения.Сведения� �ЮрФизЛице(СтруктурнаяЕдин ицаОрганизация, Шапка.Дата);
СведенияОПолучателе = ОбщегоНазначения.Сведения� �ЮрФизЛице(Шапка.Получател� �, Шапка.Дата);
ВидДокумента = СсылкаНаОбъект.Метаданные( ).Имя;
ИмяТабЧасти = "Товары";
ТекДок = СсылкаНаОбъект;
ТекстЗапроса =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ДокТабЧасть.ЕдиницаИзмере� �ия КАК ЕдиницаИзмерения,
| ДокТабЧасть.Номенклатура КАК Номенклатура,
| ДокТабЧасть.Характеристик� �Номенклатуры КАК Характеристика,
| ДокТабЧасть.СерияНоменкла� �уры КАК Серия,
| ПРЕДСТАВЛЕНИЕ(ДокТабЧасть. ЕдиницаИзмерения) КАК ПечЕдиницаИзмерения,
| ПРЕДСТАВЛЕНИЕ(ДокТабЧасть. Номенклатура) КАК ПечНоменклатура,
| ДокСерийныеНомера.Серийны� �Номер КАК СерийныйНомер,
| ДокТабЧасть.Количество КАК Количество,
| ДокТабЧасть.НомерСтроки КАК НомерСтроки,
| ЗначенияСвойствОбъектов.З� �ачение.Наименование КАК Гарантия
|ИЗ
| Документ." + ВидДокумента + "." + ИмяТабЧасти + " КАК ДокТабЧасть
| ЛЕВОЕ СОЕДИНЕНИЕ Документ." + ВидДокумента + ".СерийныеНомера КАК ДокСерийныеНомера
| ПО ДокТабЧасть.КлючСвязи = ДокСерийныеНомера.КлючСвя� �и
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияС� �ойствОбъектов КАК ЗначенияСвойствОбъектов
| ПО ДокТабЧасть.Номенклатура.С сылка = ЗначенияСвойствОбъектов.О� �ъект.Ссылка
| И ЗначенияСвойствОбъектов.С� �ойство.Наименование = ""Гарантия""
|ГДЕ
| ДокТабЧасть.Ссылка = &ТекДок
| И ДокСерийныеНомера.Ссылка = &ТекДок
|УПОРЯДОЧИТЬ ПО
| НомерСтроки,
| ДокСерийныеНомера.НомерСт� �оки
|";
Запрос = Новый Запрос;
Запрос.Текст = ТекстЗапроса;
Запрос.УстановитьПараметр( "ТекДок", СсылкаНаОбъект);
Запрос.УстановитьПараметр( "ИмяТабЧасти", "Товары");
ТабДокумент = Новый ТабличныйДокумент;
// Зададим параметры печатной формы по умолчанию
ТабДокумент.РазмерКолонти� �улаСверху = 5;
ТабДокумент.РазмерКолонти� �улаСнизу = 5;
ТабДокумент.АвтоМасштаб = Истина;
ТабДокумент.ОриентацияСтр� �ницы = ОриентацияСтраницы.Портре� �;
ТабДокумент.ПолеСверху=5;
ТабДокумент.ПолеСлева=5;
ТабДокумент.ПолеСнизу=5;
ТабДокумент.ПолеСправа=5;
// Восстановим установленные пользователем параметры печатной формы
ТабДокумент.ИмяПараметров� �ечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ВнешняяП� �чатнаяФорма";
РезультатЗапроса = Запрос.Выполнить();
Макет = ПолучитьМакет("Гарантия");
ПредставлениеПоставщика = ОбщегоНазначения.Описание� �рганизации(СведенияОПоста вщике, "ПолноеНаименование,");
Область = Макет.ПолучитьОбласть("Пос� �авщик");
Область.Параметры.Документ Основание = "Документ основание: " + РаботаСДиалогами.Сформиро� �атьЗаголовокДокумента(Тек Док,,глСписокПрефиксовУзло в);
Область.Параметры.Представ лениеПоставщика = "Поставщик: " + СокрЛП(ПредставлениеПоста� �щика);//СведенияОПоставщике.Юриди� �ескийАдрес;
Область.Параметры.АдресПос тавщика = "Адрес: Республика Казахстан, г. Павлодар, ул. Ленина, дом № 143, офис 34";
Область.Параметры.ТелПоста вщика = "Телефон: "+ СведенияОПоставщике.Телеф� �ны;
ТабДокумент.Вывести(Област ь);
//Заголовок
Область = Макет.ПолучитьОбласть("Заг� �ловок");
Область.Параметры.ТекстЗаг оловок = "Гарантийный талон";
ТабДокумент.Вывести(Област ь);
ПредставлениеПолучателя = ОбщегоНазначения.Описание� �рганизации(ОбщегоНазначен ия.СведенияОЮрФизЛице(Шапк а.Получатель, Шапка.Дата), "ПолноеНаименование,");
Область = Макет.ПолучитьОбласть("Пок� �патель");
Область.Параметры.Представ лениеПолучателя = "Покупатель: " + СокрЛП(ПредставлениеПолуч� �теля);
Область.Параметры.ДатаПолу чателя = "Дата продажи: " + Формат( Шапка.Дата, "ДФ='дд.ММ.гггг'") ;
Область.Параметры.АдресПол учателя = "Адрес: " + СведенияОПолучателе.Юриди� �ескийАдрес;
ТабДокумент.Вывести(Област ь);
Область = Макет.ПолучитьОбласть("Таб� �апка");
ТабДокумент.Вывести(Област ь);
ОбластьНоменклатура = Макет.ПолучитьОбласть("Таб� �оменклатура");
Индекс = 0;
ТекНоменклатура = Неопределено;
ТекХарактеристика = Неопределено;
ТекСерия = Неопределено;
ТекСерийныйНомер = Неопределено;
Обход = РезультатЗапроса.Выбрать();
Пока Обход.Следующий() Цикл
Если ТекНоменклатура <> Обход.Номенклатура
ИЛИ ТекХарактеристика <> Обход.Характеристика
ИЛИ ТекСерия <> Обход.Серия
ИЛИ ТекСерийныйНомер <> Обход.СерийныйНомер
Тогда
Индекс = Индекс + 1;
ТекНоменклатура = Обход.Номенклатура;
ТекХарактеристика = Обход.Характеристика;
ТекСерия = Обход.Серия;
ТекСерийныйНомер = Обход.СерийныйНомер;
ОбластьНоменклатура.Парам� �тры.НомСтр = Индекс;
ОбластьНоменклатура.Парам� �тры.ПечНоменклатура = Обход.ПечНоменклатура + ФормированиеПечатныхФорм.� �редставлениеСерий(Обход);
ОбластьНоменклатура.Парам� �тры.Номенклатура = Обход.Номенклатура;
ОбластьНоменклатура.Парам� �тры.ЕдИзм = Обход.ЕдиницаИзмерения;
ОбластьНоменклатура.Парам� �тры.ПечЕдИзм = Обход.ПечЕдиницаИзмерения;
ОбластьНоменклатура.Парам� �тры.Количество = Обход.Количество;
ОбластьНоменклатура.Парам� �тры.СерийныйНомер = Обход.СерийныйНомер;
СерийныйНомер = ?(ЗначениеЗаполнено(Обход.С ерийныйНомер),Обход.Серийн� �йНомер,"");
ОбластьНоменклатура.Парам� �тры.СерийныйНомер = СерийныйНомер;
Гарантия = ?(ЗначениеЗаполнено(Обход.Г арантия),Обход.Гарантия,"");
ОбластьНоменклатура.Парам� �тры.ГарантийныйСрок = Гарантия;
ТабДокумент.Вывести(Област ьНоменклатура);
КонецЕсли;
КонецЦикла;
Область = Макет.ПолучитьОбласть("Таб� �одвал");
Область.Параметры.Ответств енный = ?(ТекДок.Ответственный.Ссыл ка.Пустая()=1,"______________________",Т� �кДок.Ответственный);
ТабДокумент.Вывести(Област ь);
Возврат ТабДокумент;
КонецФункции
---------- Post added at 10:36 ---------- Previous post was at 10:34 ----------
Из нее пытаюсь сделать самостоятельный документ документ
---------- Post added at 10:39 ---------- Previous post was at 10:36 ----------
Вот часть кода созданного мною документа:
Функция Печать()
Запрос = Новый Запрос;
Запрос.УстановитьПараметр( "ТекущийДокумент", ЭтотОбъект.Ссылка);
Запрос.УстановитьПараметр( "Дата", Дата);
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ГарантийныйТалон.Дата,
| ГарантийныйТалон.Номер,
| ГарантийныйТалон.Контраге� �т КАК Получатель,
| ГарантийныйТалон.Организа� �ия КАК Поставщик,
| ГарантийныйТалон.Структур� �оеПодразделение,
| ГарантийныйТалон.Организа� �ия
|ИЗ
| Документ.ГарантийныйТалон КАК ГарантийныйТалон
|
|ГДЕ
| ГарантийныйТалон.Ссылка = &ТекущийДокумент";
Шапка = Запрос.Выполнить().Выбрать() ;
Шапка.Следующий();
СтруктурнаяЕдиницаОрганиз ация = ОбщегоНазначения.Получить� �труктурнуюЕдиницу(Шапка.О� �ганизация, Шапка.СтруктурноеПодразде� �ение);
СведенияОПоставщике = ОбщегоНазначения.Сведения� �ЮрФизЛице(СтруктурнаяЕдин ицаОрганизация, Шапка.Дата);
СведенияОПолучателе = ОбщегоНазначения.Сведения� �ЮрФизЛице(Шапка.Получател� �, Шапка.Дата);
КонецФункции // Печать()
На данной строке
СтруктурнаяЕдиницаОрганиз ация = ОбщегоНазначения.Получить� �труктурнуюЕдиницу(Шапка.О� �ганизация, Шапка.СтруктурноеПодразде� �ение);
выдает ошибку:
{ОбщийМодуль.ОбщегоНазначе ния.Модуль(1926)}: Значение не является значением объектного типа (УказыватьРеквизитыГоловн� �йОрганизации)
Если СтруктурноеПодразделение.� �казыватьРеквизитыГоловно� �Организации Тогда
-
24.10.2014, 09:14 #3
- Регистрация
- 29.01.2010
- Сообщений
- 1212
- Сказал(а) спасибо
- 30
- Поблагодарили 261 раз(а) в 245 сообщениях
Мдя. Как я и предполагал :dance:
Это понятно желание "списать у товарища" и взять что-либо из "штатной функциональности", но это все же стоит делать понимая "что и как".
Ну скажите пожалуйста, ну зачем "огород городить" с запросами (для штатной функциональности это понятно, там делают универсальный на все случаи жизни)?
Если ссылка на сам документ у Вас находится в "ЭтотОбъект.СсылкаНаОбъект ", то ссылка на организацию у вас "сидит" в "ЭтотОбъект.Организация", а ссылка на покупателя "ЭтотОбъект.Контрагент"
И всё, без всяких выеживаний :blush:
ПыСы. Запустите отладчик в файловом режиме и сами убедитесь что это именно так
Социальные закладки