Форум программистов, компьютерный форум, киберфорум
1С
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.97/75: Рейтинг темы: голосов - 75, средняя оценка - 4.97
0 / 0 / 0
Регистрация: 01.08.2013
Сообщений: 30

Данные из текущего документа + Данные из справочника. Внешняя печатная форма

22.08.2013, 15:11. Показов 16290. Ответов 35
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Волей судьбы пришлось столкнуться с 1С, до этого 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
Функция ПечатьДокумента()
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |   РеализацияТоваровУслуг.Номер,
    |   РеализацияТоваровУслуг.Дата,
    |   РеализацияТоваровУслуг.Контрагент,
    |   РеализацияТоваровУслуг.Контрагент.Ссылка.НаименованиеПолное КАК НаименованиеПолное,
    |   РеализацияТоваровУслуг.Организация
    |ИЗ
    |   Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
    |ГДЕ
    |   РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент";
        
    Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект); //используем в качетсве параметра реквизит обработки СсылкаНаОбъект
    
    Шапка = Запрос.Выполнить().Выбрать();
    Шапка.Следующий();
    
    ТабДокумент = Новый ТабличныйДокумент;
    Макет = ПолучитьМакет("Макет");
 
    Макет.Параметры.НомерДоговора = "Лицензионный договор №" + Шапка.Номер;
    Макет.Параметры.ДатаДоговора = Шапка.Дата;
    
    Макет.Параметры.Пункт0 = 
                "    Общество с ограниченной ответственностью " 
                + Шапка.Организация + 
                ", именуемое в дальнейшем Лицензиат";
    
    ТабДокумент.Вывести(Макет);
    
    Возврат ТабДокумент;
 
КонецФункции // ПечатьДокумента()
 
Функция Печать() Экспорт
    
    ТабДокумент = ПечатьДокумента();
    Возврат ТабДокумент;
    
КонецФункции // Печать
Собственно и вопрос, как в данный документ подключить ФИО руководителя контрагента?
1С:Предприятие 8.1 (8.1.14.69)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.08.2013, 15:11
Ответы с готовыми решениями:

Внешняя печатная форма с доп.формой. Как перенести данные открытого документа
Доброго всем. Бухгалтерия 2.0 Проф У меня есть внешняя печатная форма, привязанная к документу "Требование-накладная". ...

Печатная форма, выбирать данные не только из одного документа
Подскажите пожалуйста что нужно написать что бы в печатной форме выбирать данные не только из одного документа Вот код Процедура...

Внешняя печатная форма с дополнительными сведениями документа
Добрый день. По инструкции специалистов наваяла внешнюю печатную форму к коммерческому предложению, подключила. Все замечательно работает!...

35
0 / 0 / 0
Регистрация: 01.08.2013
Сообщений: 30
28.08.2013, 08:45  [ТС]
Студворк — интернет-сервис помощи студентам
//есть Контакт, но что нам это даёт, вдруг там какой нибудь курьер, как в демке?
Все верно, по этому и хочу из Справочника Контактные Лица, а не через Основное Контактное Лицо эту инфу получить

Добавлено через 2 часа 9 минут
Цитата Сообщение от wladimir_ui Посмотреть сообщение
1C
1
2
3
| РеализацияТоваровУслуг.Контрагент.ОсновноеКонтактноеЛицо.Фамилия,
| РеализацияТоваровУслуг.Контрагент.ОсновноеКонтактноеЛицо.Имя,
| РеализацияТоваровУслуг.Контрагент.ОсновноеКонтактноеЛицо.Отчество,
дает значение ложь
0
Шизофреник
 Аватар для wladimir_ui
361 / 363 / 83
Регистрация: 25.06.2013
Сообщений: 1,141
28.08.2013, 16:36
1 картина: случай когда основной есть
2 картина: крутим все контакты контрагента
Миниатюры
Данные из текущего документа + Данные из справочника. Внешняя печатная форма   Данные из текущего документа + Данные из справочника. Внешняя печатная форма  
0
Шизофреник
 Аватар для wladimir_ui
361 / 363 / 83
Регистрация: 25.06.2013
Сообщений: 1,141
28.08.2013, 16:41
должность там - это строка... если руководителя/директора среди контактов не идентифицируете, кого царем делать будете?
0
0 / 0 / 0
Регистрация: 01.08.2013
Сообщений: 30
29.08.2013, 06:51  [ТС]
wladimir_ui, пусть это будет форс-мажор )) а если серьезно, то это условие будет обязательно для заполнения, т.е. ОсновноеКонтактноеЛицо будет обязательно директор/босс/шеф и тд.. в любом случае это проще чем бухгалтер при заполнении договора копипастит данные из 1С в Word
0
Шизофреник
 Аватар для wladimir_ui
361 / 363 / 83
Регистрация: 25.06.2013
Сообщений: 1,141
29.08.2013, 07:20
Ну если основное контактное будет заполнено то все должно работать. Только концовку надо поменять:
1C
1
2
3
4
5
6
...
Иначе
         //есть Контакт...
        Должность = Выборка.КонтрагентОсновноеКонтактноеЛицоДолжность;
        Фамилия = Выборка.КонтрагентОсновноеКонтактноеЛицоФамилия;
        ///.... и т.д.
0
0 / 0 / 0
Регистрация: 01.08.2013
Сообщений: 30
29.08.2013, 09:46  [ТС]
wladimir_ui, я похоже тормоз (
1C
1
2
3
4
5
6
////////
"ВЫБРАТЬ
|   РеализацияТоваровУслуг.Контрагент.ОсновноеКонтактноеЛицоФамилия
///////
Фамилия = Выборка.КонтрагентОсновноеКонтактноеЛицоФамилия;
////////
такая связка не работает
1C
1
Поле не найдено "РеализацияТоваровУслуг.Контрагент.ОсновноеКонтактноеЛицоФамилия"
0
Шизофреник
 Аватар для wladimir_ui
361 / 363 / 83
Регистрация: 25.06.2013
Сообщений: 1,141
29.08.2013, 11:25
Сделайте так:
| РеализацияТоваровУслуг.Контрагент.Основн оеКонтактноеЛицо.Фамилия как Фамилия,
| РеализацияТоваровУслуг.Контрагент.Основн оеКонтактноеЛицо.Имя как Имя,
| РеализацияТоваровУслуг.Контрагент.Основн оеКонтактноеЛицо.Отчество как Отчество,

Тогда у вас заработает:
Фамилия = Выборка.Фамилия;
...


Добавлено через 20 минут
в приведенном вами
| РеализацияТоваровУслуг.Контрагент.Основн оеКонтактноеЛицоФамилия
точки между харей и фамилией не хватат
| РеализацияТоваровУслуг.Контрагент.Основн оеКонтактноеЛицо.Фамилия
0
0 / 0 / 0
Регистрация: 01.08.2013
Сообщений: 30
29.08.2013, 11:33  [ТС]
я так пробовал, дает значение ложь
0
Шизофреник
 Аватар для wladimir_ui
361 / 363 / 83
Регистрация: 25.06.2013
Сообщений: 1,141
29.08.2013, 12:52
сделаем проще: выложите обработку - гляну чего вы там навояли
0
0 / 0 / 0
Регистрация: 01.08.2013
Сообщений: 30
29.08.2013, 13:08  [ТС]
Добавил
Dogovor.rar
0
Шизофреник
 Аватар для wladimir_ui
361 / 363 / 83
Регистрация: 25.06.2013
Сообщений: 1,141
29.08.2013, 15:00
1C
1
2
3
Макет.Параметры.Пункт881 = "Лицензиат: " + Шапка.Организация + 
    //"Юридический адрес: " + Шапка.ПолеКИ1+;
    Макет.Параметры.Пункт882 = "Сублицензиат: " + Шапка.Фамилия;
фактически это:
Макет.Параметры.Пункт881 = "Лицензиат: " + Шапка.Организация + Макет.Параметры.Пункт882 ="Сублицензиат: " + Шапка.Фамилия;


По сути это звучит так:
В Макете вместо параметра "Пункт881" вставить результат сравнения строки
"Лицензиат: " + Шапка.Организация + Макет.Параметры.Пункт882
и строки
"Сублицензиат: " + Шапка.Фамилия
а так как они не равны, то и результат сложения = ЛОЖЬ

Не по теме:

Вопрос: 2х2=4
Ответ: Истина

Вопрос: 2х2=5
Ответ: Ложь



В шапку то фио/должность нормально попали, будьте внимательнее.

Добавлено через 53 минуты
з.ы. рекомендую:
1. в обработке создать форму (при создании поставить галки на реквизитах, чтоб они на форму попали)
2. на кнопку "выполнить" повесьте код:
1C
1
2
3
4
Процедура КнопкаВыполнитьНажатие(Кнопка)
    ТабДокумент = ПечатьДокумента();
    ТабДокумент.Показать()
КонецПроцедуры
3. в модуле обработке допишите слово Экспорт:
1C
1
Функция ПечатьДокумента()Экспорт
и пользуйтесь отладчиком, чтоб понимать, что происходит, а не играться с черным ящиком
1
0 / 0 / 0
Регистрация: 01.08.2013
Сообщений: 30
30.08.2013, 14:34  [ТС]
долбаная ";" )))) спасибо, сам бы 100% не нашел!!!

Добавлено через 23 часа 31 минуту
почти все получилось, осталось добавить данные о адресах и телефонах контрагента..
1C
1
2
3
4
|   РеализацияТоваровУслуг.Контрагент.ЭлементыФормы.ПолеКИ1 КАК ПолеКИ1,
или
 РеализацияТоваровУслуг.Контрагент.ПолеКИ1 КАК ПолеКИ1,
итд
не получается (
0
32 / 32 / 3
Регистрация: 11.02.2012
Сообщений: 91
30.08.2013, 22:22
1C
1
2
3
4
5
НаборКонтактнойИнформации = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();
УправлениеКонтактнойИнформацией.ПрочитатьКонтактнуюИнформацию(НаборКонтактнойИнформации,Шапка.Контрагент);
Для Каждого Стр из НаборКонтактнойИнформации Цикл
     //тут свое условие
КонецЦикла
0
20 / 20 / 0
Регистрация: 29.08.2013
Сообщений: 57
31.08.2013, 15:53
Может неправильно понимаю задачу, но что мешает сделать так как уже советовали в самом начеле?
Если справочник КонтактныеЛица подчинен справочнику Контрагенты, то дополнить запрос как-то так:
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
ВЫБРАТЬ
    РеализацияТоваровУслуг.Контрагент,
    РуководствоКонтрагента.ФИО             КАК ФИОРуководителяКонтрагента,
    РуководствоКонтрагента.Должность     КАК ДолжностьРуководителяКонтрагента
ИЗ
    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
 
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            КонтактныеЛица.Должность КАК Должность,
            КонтактныеЛица.ФИО      КАК ФИО,
            КонтактныеЛица.Владелец    КАК Владелец
        ИЗ
            Справочник.КонтактныеЛица КАК КонтактныеЛица
        ГДЕ
            КонтактныеЛица.Должность = &Должность) КАК РуководствоКонтрагента    
        ПО (РуководствоКонтрагента.Владелец = РеализацияТоваровУслуг.Контрагент)
А в параметры запроса добавить:
1C
1
 Запрос.УстановитьПараметр("Должность", <Тут вставить представление должности в справочнике КонтактныеЛица>);
0
0 / 0 / 0
Регистрация: 01.08.2013
Сообщений: 30
02.09.2013, 13:26  [ТС]
fastumgel, не понял как это реализовать..
весь текст приводить не буду, только что касается контактной информации, сделал так:
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
 "ВЫБРАТЬ
    |   КонтактнаяИнформацияТелефон.Представление КАК Телефон,
    |   КонтактнаяИнформацияАдрес.Представление КАК Адрес,
    |   КонтактнаяИнформацияДругое.Представление КАК Другое,
 
    |ИЗ
    |   Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
    ////////
    |    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформацияАдрес
    |    ПО (КонтактнаяИнформацияАдрес.Объект = Контрагент.Ссылка)
    |        И (КонтактнаяИнформацияАдрес.Тип = &Адрес)
    ////////
    |    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформацияДругое
    |    ПО (КонтактнаяИнформацияДругое.Объект = Контрагент.Ссылка)
    |        И (КонтактнаяИнформацияДругое.Тип = &Другое)
    /////// 
    |    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформацияТелефон
    |    ПО (КонтактнаяИнформацияТелефон.Объект = Контрагент.Ссылка)
    |        И (КонтактнаяИнформацияТелефон.Тип = &Телефон)
    |        И (КонтактнаяИнформацияТелефон.Вид = &Вид) 
    |ГДЕ
    |   РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент";
 
 
Запрос.УстановитьПараметр("Телефон", Перечисления.ТипыКонтактнойИнформации.Телефон);
    Запрос.УстановитьПараметр("Вид", Справочники.ВидыКонтактнойИнформации.ТелефонКонтрагента);
    Запрос.УстановитьПараметр("Адрес", Перечисления.ТипыКонтактнойИнформации.Адрес);
    Запрос.УстановитьПараметр("Другое", Перечисления.ТипыКонтактнойИнформации.Другое);
Поле Другое использую как Почтовый (Фактический) адрес, по другому не получилось... в принципе осталось только это до ума довести, есть еще пара "костылей"... Это ФИО руководителя в родительском падеже, реализовал через "Представление", т.е. ФИО будет Тест Т.Т., представление Тестов Тест Тестович...

Добавлено через 4 минуты
Kubus, спорить не буду, но мне показалось что так проще, по крайней мере работает
0
32 / 32 / 3
Регистрация: 11.02.2012
Сообщений: 91
02.09.2013, 14:18
1C
1
2
3
4
5
6
7
НаборКонтактнойИнформации = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();
    УправлениеКонтактнойИнформацией.ПрочитатьКонтактнуюИнформацию(НаборКонтактнойИнформации,Ссылка);
    Для Каждого стр из НаборКонтактнойИнформации Цикл 
        Если стр.Вид.Наименование = "Юридический адрес"  Тогда 
            ПолеКи1 = стр.Представление;
        КонецЕсли; 
    КонецЦикла;
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.09.2013, 14:18

Внешняя печатная форма для документа СчетНаОплатуПокупателю
Добрый день! Версия платформы: 8.3.4.437 &quot;Управление торговлей&quot;, редакция 10.3 (10.3.29.1). Создал внешнюю обработку. В ней...

Внешняя печатная форма
Народ! Помогите, пожалуйста! Делаю ВПФ Торг12 для дока ПередачаТоваров. Конфа БП 2.0. Выскакивает ошибка...

Внешняя печатная форма
Товарищи работающие в 1С 7.7 хелп!!! =) Ни разу не работал в 7 поэтому у меня щас жуткая паника! Проблема вот в чем: Значит...

Внешняя печатная форма
Добрый день.Делаю внешнюю печатную форму.Застр\ла на 1 моменте,не получается вытащить паспортные данные физ.лица..Прикладываю именно эту...

Внешняя печатная форма
Народ! Такая проблема. Делаю впф Торг12 для БП 3.0! До этого уже несколько форм делал на упр приложении, все норм было. Но сейчас какая-то...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
36
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru