Всем привет!
Я очень начинающий программист. Подскажите, пожалуйста.
В 1с добавлена внешняя обработка, выводит на печать вордовский документ.
Если открыть макет этого ворда (двоичные данные), то вижу, что там, где данные должны заполнится автоматически (например, организация, ФИО сотрудника) обозначены как {v8 ОрганизацияНаименование}, {v8 СотрудникФИО} и тд. В связи с этим вопрос, это просто ручками написано и в коде этому что-то присваивается, или это какие то специальные вставки. Не могу разобраться.
Создала обработку, что бы при установке галочки выводился на печать определенный документ. Галку устанавливаю, но на печать выводится пустой вордовский документ, как бы новый создается :(
И вот думаю, может я с этими параметрами что то не так делала
Спасибо!
Я очень начинающий программист. Подскажите, пожалуйста.
В 1с добавлена внешняя обработка, выводит на печать вордовский документ.
Если открыть макет этого ворда (двоичные данные), то вижу, что там, где данные должны заполнится автоматически (например, организация, ФИО сотрудника) обозначены как {v8 ОрганизацияНаименование}, {v8 СотрудникФИО} и тд. В связи с этим вопрос, это просто ручками написано и в коде этому что-то присваивается, или это какие то специальные вставки. Не могу разобраться.
Создала обработку, что бы при установке галочки выводился на печать определенный документ. Галку устанавливаю, но на печать выводится пустой вордовский документ, как бы новый создается :(
И вот думаю, может я с этими параметрами что то не так делала
Спасибо!
По теме из базы знаний
- Универсальная выгрузка документов "реализация" из 1C8.2 в файлы: dbf и текстовые (в том числе xml) по шаблонам
- Прайс лист с картинками для УТ11 (УФ, добавление логотипа и свободных текстовых полей)
- Практические кейсы и примеры создания сценарных тестов с использованием фреймворка Тестирование 3.0
- Автоматическая загрузка выписок через Интеграционный Банк-Клиент (ИБК) системы ДБО "ВТБ Бизнес-онлайн" версии 1 и 2 и формирование стандартных текстовых файлов клиент-банка kl_to_1c
- Особенность задания периода в запросе в СКД
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Всё что идёт в этих скобках {v8 Что-то} - параметры. В процессе вывода заменяются на значения из документа (или то, что передадут в них).
видимо тут косяк какой-то. нужен код чтоб разобраться
Создала обработку, что бы при установке галочки выводился на печать определенный документ. Галку устанавливаю, но на печать выводится пустой вордовский документ, как бы новый создается
видимо тут косяк какой-то. нужен код чтоб разобраться
Посмотрите модуль внешней обработки. там все заполнение должно быть прописано, в том числе там сделана замена этих параметров на данные. Возможно вы параметры задали некорректно либо у вас не прописано их заполнение.
(5) Спасибо всем большое!
То есть, если хотя бы один параметр не задан или задан некорректно, то печатная форма выводится вся будет пустой, правильно?
Я просто думала, если косяк с каким-то одним параметром, то документ весь выводится будет, только один параметр - нет.
И эти параметры я просто вручную должна прописать руками? Это не какие то специальные вставки?
То есть, если хотя бы один параметр не задан или задан некорректно, то печатная форма выводится вся будет пустой, правильно?
Я просто думала, если косяк с каким-то одним параметром, то документ весь выводится будет, только один параметр - нет.
И эти параметры я просто вручную должна прописать руками? Это не какие то специальные вставки?
(6)
(6)
Но если косяк с заполнением всех параметров, то все равно будет пустая форма.
То есть, если хотя бы один параметр не задан или задан некорректно, то печатная форма выводится вся будет пустой, правильно?
Нет.
(6)
если косяк с каким-то одним параметром, то документ весь выводится будет, только один параметр - нет.
Да.
Но если косяк с заполнением всех параметров, то все равно будет пустая форма.
(7)
скорее всего там будет примерно такой код :
КадровыеДанные
курсором если встать на переменную и нажать F12 на клавиатуре то он перейдет к месту где его в первый раз задали.
скорее всего там будет примерно такой код :
КадровыеДанные = КадровыйУчет.КадровыеДанныеСотрудников(Истина, МассивСотрудников, "ФамилияИО,ИОФамилия,Подразделение,Должность,ТабельныйНомер,Пол,ФИОПолные");
(11) ой, трудно мне понять.
У меня тут создается процедура:
А теперь мне нужно сюда добавить еще, что бы заполнился номер трудового договора сотрудника в печатной форме. И вот как мне узнать, что прописывать для него.
У меня тут создается процедура:
Процедура ЗаполнитьДанныеСотрудника(Структура, КадровыеДанные)
Структура.Вставить("СотрудникФИО", КадровыеДанные.ФамилияИО);
КонецПроцедуры;
А теперь мне нужно сюда добавить еще, что бы заполнился номер трудового договора сотрудника в печатной форме. И вот как мне узнать, что прописывать для него.
(11) ну кстати, это вот и есть эти параметры, которые я указывала в ворде.
Процедура ЗаполнитьДанныеСотрудника(Структура, КадровыеДанные)
Структура.Вставить("СотрудникФИО", КадровыеДанные.ФамилияИО);
Структура.Вставить("СотрудникАдрес", КадровыеДанные.АдресПоПропискеПредставление);
КонецПроцедуры
(14) добавляете туда
, при этом в ворде должна быть такая вставка
{v8 ТрудовойДоговорНомер}. При этом в кадровых данных, там где через запятую перечисляются реквизиты сотрудника, должно быть поле "ТрудовойДоговорНомер"
Структура.Вставить("ТрудовойДоговорНомер", КадровыеДанные.ТрудовойДоговорНомер);
{v8 ТрудовойДоговорНомер}. При этом в кадровых данных, там где через запятую перечисляются реквизиты сотрудника, должно быть поле "ТрудовойДоговорНомер"
Функция ПолучитьДанныеДляПечатиДопСоглашенияНаОбучение(Сотрудник, ДатаВступленияСоглашенияВСилу) Экспорт
Организация = Сотрудник.ГоловнаяОрганизация;
Структура = Новый Структура;
Структура.Вставить("ДатаВступленияСоглашенияВСилу", Формат(ДатаВступленияСоглашенияВСилу, "ДФ='''""''дд''""'' ММММ гггг ''года'''"));
ЗаполнитьДанныеОрганизации(Структура, Организация);
КадровыеДанные = КадровыйУчет.КадровыеДанныеСотрудников(Истина, Сотрудник,
"Должность, АдресПоПропискеПредставление, ФИОПолные, Пол, ФамилияИО, ДокументПредставление");
Возврат Структура;
КонецФункции
ПоказатьДалее у меня идет процедура заполнения данных сотрудника (выше выкладывала) и заполнение данных по организации. Это все в модуле объекта.
В модуле формы:
&НаКлиенте
Процедура Печать(Команда)
Если ДопСоглашениеНаОбучение Тогда
ДанныеДляПечати = ПолучитьДанныеДляПечатиДопСоглашенияНаОбучение();
НапечататьДопСоглашениеНаОбучение(ДанныеДляПечати);
КонецЕсли;
КонецПроцедуры
Показать&НаСервере
Функция ПолучитьДанныеДляПечатиДопСоглашенияНаОбучение()
мОбъект = РеквизитФормыВЗначение ("Объект");
ДвоичныеДанные = мОбъект.ПолучитьМакет("ПФ_DOC_ДопСоглашениеНаОбучение");
Возврат мОбъект.ПолучитьДанныеДляПечатиДопСоглашенияНаОбучение(ОбъектПечати, ДатаВступленияСоглашенияВСилу);
КонецФункции
Процедура НапечататьДопСоглашениеНаОбучение(ДанныеОбъекта)
ТипМакета = "DOC";
ИмяМакета = "Дополнительное соглашение на обучение";
Макет = УправлениеПечатьюКлиент.ИнициализироватьМакетОфисногоДокумента(ДвоичныеДанные, ТипМакета, ИмяМакета);
Если Макет = Неопределено Тогда
Возврат;
КонецЕсли;
Попытка
ПечатнаяФорма = УправлениеПечатьюКлиент.ИнициализироватьПечатнуюФорму(ТипМакета, Макет.НастройкиСтраницыМакета, Макет);
Если ПечатнаяФорма = Неопределено Тогда
УправлениеПечатьюКлиент.ОчиститьСсылки(Макет);
Возврат;
КонецЕсли;
ОписаниеОбласти = Новый Структура("ИмяОбласти, ТипОбласти", "Заголовок", "Общая");
Область = УправлениеПечатьюКлиент.ОбластьМакета(Макет, ОписаниеОбласти);
УправлениеПечатьюКлиент.ПрисоединитьОбластьИЗаполнитьПараметры(ПечатнаяФорма, Область, ДанныеОбъекта, Ложь);
УправлениеПечатьюКлиент.ПоказатьДокумент(ПечатнаяФорма);
Исключение
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
ЗакрытьОкноПечатнойФормы = Истина;
Возврат;
КонецПопытки;
КонецПроцедуры
ПоказатьСоздавала реквизиты Доп соглашение как галку, и дату вступления как дату
(16) я так понимаю половина кода вырезано..
видно вот что в этом месте :
нет вызова процедуры ЗаполнитьДанныеСотрудника, куда бы передавались КадровыеДанные (в которые неплохо бы вставить "ТрудовойДоговорНомер" см.пример выше)
и в конце возвращается структура в которой только ДатаВступления, дополненная данными по организации ? что-то не то явно.
видно вот что в этом месте :
Функция ПолучитьДанныеДляПечатиДопСоглашенияНаОбучение(Сотрудник, ДатаВступленияСоглашенияВСилу) Экспорт
Организация = Сотрудник.ГоловнаяОрганизация;
Структура = Новый Структура;
Структура.Вставить("ДатаВступленияСоглашенияВСилу", Формат(ДатаВступленияСоглашенияВСилу, "ДФ='''""''дд''""'' ММММ гггг ''года'''"));
ЗаполнитьДанныеОрганизации(Структура, Организация);
КадровыеДанные = КадровыйУчет.КадровыеДанныеСотрудников(Истина, Сотрудник,
"Должность, АдресПоПропискеПредставление, ФИОПолные, Пол, ФамилияИО, ДокументПредставление, ТрудовойДоговорНомер");
Возврат Структура;
КонецФункции
Показатьнет вызова процедуры ЗаполнитьДанныеСотрудника, куда бы передавались КадровыеДанные (в которые неплохо бы вставить "ТрудовойДоговорНомер" см.пример выше)
и в конце возвращается структура в которой только ДатаВступления, дополненная данными по организации ? что-то не то явно.
(17) а если так:
При чем потом у меня есть процедура заполнения данных сотрудника
Процедура ЗаполнитьДанныеСотрудника(Структура, КадровыеДанные)
Структура.Вставить("ИменуемаяЫЙ", ?(КадровыеДанные.Пол = Перечисления.ПолФизическогоЛица.Мужской, "именуемый", "именуемая"));
А при выведении на печать ругается, Поле объекта не обнаружено (Пол)
Функция ПолучитьДанныеДляПечатиДопСоглашенияНаОбучение(Сотрудник, ДатаВступленияСоглашенияВСилу) Экспорт
Организация = Сотрудник.ГоловнаяОрганизация;
Структура = Новый Структура;
Структура.Вставить("ДатаВступленияСоглашенияВСилу", Формат(ДатаВступленияСоглашенияВСилу, "ДФ='''""''дд''""'' ММММ гггг ''года'''"));
ЗаполнитьДанныеОрганизации(Структура, Организация);
КадровыеДанные = КадровыйУчет.КадровыеДанныеСотрудников(Истина, Сотрудник,
"Организация, НомерДоговораКонтракта, ДатаДоговораКонтракта, АдресПоПропискеПредставление, ФИОПолные, Пол, ФамилияИО, ДокументПредставление");
Если КадровыеДанные.Количество() > 0 Тогда
СтрокаКадровыеДанные = КадровыеДанные[0];
ЗаполнитьДанныеСотрудника(Структура, СтрокаКадровыеДанные);
Структура.Вставить("ИменуемаяЫЙ", ?(КадровыеДанные.Пол = Перечисления.ПолФизическогоЛица.Мужской, "именуемый", "именуемая"));
Если ЗначениеЗаполнено(СтрокаКадровыеДанные.НомерДоговораКонтракта) Тогда
Структура.Вставить("НомерДоговора", СтрокаКадровыеДанные.НомерДоговораКонтракта);
Иначе
Структура.Вставить("НомерДоговора", "______________");
КонецЕсли;
Если ЗначениеЗаполнено(СтрокаКадровыеДанные.ДатаДоговораКонтракта) Тогда
Структура.Вставить("ДатаДоговора", Формат(СтрокаКадровыеДанные.ДатаДоговораКонтракта, "ДФ=dd.MM.yyyy"));
Иначе
Структура.Вставить("ДатаДоговора", "______________");
КонецЕсли;
КонецЕсли;
Возврат Структура;
КонецФункции
ПоказатьПри чем потом у меня есть процедура заполнения данных сотрудника
Процедура ЗаполнитьДанныеСотрудника(Структура, КадровыеДанные)
Структура.Вставить("ИменуемаяЫЙ", ?(КадровыеДанные.Пол = Перечисления.ПолФизическогоЛица.Мужской, "именуемый", "именуемая"));
А при выведении на печать ругается, Поле объекта не обнаружено (Пол)
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот