Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Печатная форма договора

v7: Печатная форма договора
Я
   Дина88
 
22.10.19 - 09:22
Добрый день! Подскажите, пожалуйста, где находится макет печатной формы к документу или справочнику? Нужно добавить еще 3х сотрудников - авторов в форму и соответственно чтобы они выводились в печатной форме. Я новичок. Начала учиться в 8. Там есть Макет. А в 7 я не вижу слова макет(. Помогите, пожалуйста!
 
 
   Дина88
 
1 - 22.10.19 - 09:24
В форму договора подряда добавила еще 3х сотрудников-авторов, которых выбрала из справочника сотрудники.А как в печатную форму добавить не знаю
   Карст
 
2 - 22.10.19 - 09:25
   Карст
 
3 - 22.10.19 - 09:27
   Дина88
 
4 - 22.10.19 - 09:28
Спасибо большое. А в камине 7.7 одинаково? забыла сказать, что это камин
   Провинциальный 1сник
 
5 - 22.10.19 - 09:30
(0) Аналог восьмерочного макета - таблица. Доступная из формы. Их может быть несколько, в коде определяется через метод ИсходнаяТаблица().
   Провинциальный 1сник
 
6 - 22.10.19 - 09:31
(4) Без разницы, какая конфигурация.
Еще макеты хранятся в Действия-Общие таблицы. Часто там всякие унифицированные формы лежат.
   Карст
 
7 - 22.10.19 - 09:33
В камине скорее всего во внешних файлах
   Kigo_Kigo
 
8 - 22.10.19 - 09:33
По кнопке Печать, посмотреть процедуру, которая исполняется по кнопке, запустить отладчик, поставить точку останова, и смотреть что вызывается в качестве обработки печати
   Карст
 
9 - 22.10.19 - 09:34
или *.mxl (внешняя таблица) или *.ert (внешний макет)
   vladko
 
10 - 22.10.19 - 09:34
в Камине 7.7 любят печатные формы использовать во внешних обработках или печатных формах:
<папка базы>\ExtForms\
<папка базы>\ExtForms\PrnForms\
их вызов идёт из программы по кнопке вызова помощника.
   Дина88
 
11 - 22.10.19 - 09:37
Спасибо за такой отклик всем. Оказ. Таблица называется. Вообще код отличается, какие-то слои. Экспорт. Скорее всего внешняя обработка. Придется все изучать потихоньку
   vladko
 
12 - 22.10.19 - 09:40
(11) для работы со слоями есть кнопка внизу на экране с формой. И программное управление ими уже из модуля.
   Злопчинский
 
13 - 22.10.19 - 14:02
слои самое то когда надо организовать безморгательные смены экрана
   Дина88
 
14 - 22.10.19 - 14:33
Спасибо)) нашла таблицу, во внешнем файле была. Начала редактировать
   victuan1
 
15 - 22.10.19 - 17:10
(13) А то)
   Злопчинский
 
16 - 22.10.19 - 21:31
(14) Осторожнее, а то рванет!
   Дина88
 
17 - 24.10.19 - 16:51
Добрый вечер! Подскажите, пожалуйста, как сделать в таблице договора склонение по числам, мн. и ед число к статусам сотрудников? всего 4 статуса(автор, соавтор, наследник, составитель), сотрудников тоже 4, статусы выбираются из выпадающего списка справочника СтатусыСотрудников. В таблице они должны сесть уже склоненные либо ед либо мн число.
текст в договоре - именуемые в дальнейшем как... (соавторы или соавтор)
   Злопчинский
 
18 - 24.10.19 - 19:43
(17) склонение вроде по падежам. а не то что вы написали.
для 4 статусов и 2 форм (ед и мн) - всего 8 комбинаций.

из контекста "договора" (что там заполнено у вас в договоре или справочнике) - по идее известно: какой статус выбран и сколько составляющих статуса указано в "договоре" - один или больше одного.

дальше делаете тупо (я обычно не морочусь).

в ячейке макета ставите тип =Шаблон и рисуете
именуемые в дальнейшем как... ([ПечСтатус])

а в коде делаем так (хз как у вас там статусы заданы и список авторов\соавторов)

//определим или получим как-то аналогично НСИ (нормативно-справочную информацию


СЗ = СоздатьОбъект("СписокЗначений");//значение=мнж.число, представление(ключом будет)=ед.число


СЗ.ДобавитьЗначение("авторы","автор");//1строка = номер статуса,

СЗ.ДобавитьЗначение("соавторы","соавтор");//2

СЗ.ДобавитьЗначение("наследники","наследник");//3

СЗ.ДобавитьЗначение("составители","составитель");//4


ПечСтатус="<ОШИБКА, ЗНАЧЕНИЕ НЕ ОПРЕДЕЛЕНО>";

//договоримся что из контекста "договора" можно получить некий ИД статуса - например номер строки в СЗ или ключ статуса и можно получить количество статусов в документе (один автор или несколько)


ИдентификаторСтатусаЕд = ПолучитьСтатус();//здесь получаем ключ/идентификатор статуса, это "автор","исполнитель","составитель","наследник" - этот идентификатор и будет заодно ед.числом.


ИдентификаторСтатусаМнж = СЗ.Получить(ИдентификаторСтатусаЕд);
Если ПустоеЗначение(ИдентификаторСтатусаМнж)=1 Тогда
  //какойто кривой статус в документе, выведется ошибка в текст

Иначе
  КолвоСтатусов = ПолучитьКоличествоСтатусов();//сколько авторов, ЧИСЛО, может быть и 0,если в договоре не заполнено

  ПечСтатус = ?(КолвоСтатусов<2,ИдентификаторСтатусаЕд,ИдентификаторСтатусаМнж);
КонецЕсли;
 Таб.ВывестиСекцию(...);
   Злопчинский
 
19 - 24.10.19 - 19:53
Можно еще так

НомерСтатуса = ПолучитьСтатус();
Если (НомерСтатуса<1) ИЛИ (НомерСтатуса>4)
  ПечСтатус="<ОШИБКА, ЗНАЧЕНИЕ НЕ ОПРЕДЕЛЕНО>";
Иначе
  ИдентификаторСтатусаМнж = "";
  ИдентификаторСтатусаЕд = СЗ.ПолучитьЗначение(НомерСтатуса,ИдентификаторСтатусаМнж);
  КолвоСтатусов = ПолучитьКоличествоСтатусов()//сколько авторов, ЧИСЛО, может быть и 0,если в договоре не заполнено

  ПечСтатус = ?(КолвоСтатусов<2,ИдентификаторСтатусаЕд,ИдентификаторСтатусаМнж);
КонецЕсли;
Таб.ВывестиСекцию(...);
   Злопчинский
 
20 - 24.10.19 - 19:54
можно еще с пяток вариантов накидать, в завсимости как у вас там статусы определены и ка кони в договоре задаются.

тут основное что ед/множ не имеет смысла "склонять", т.к. перечень "склоняемых" мал и заранее определен.
   Дина88
 
21 - 25.10.19 - 05:43
Спасибо, что поправили. Сорри, формы. Сейчас буду пробовать
   Дина88
 
22 - 25.10.19 - 05:50
Получается, что одного реквизита статусыСотрудников не достаточно в форме договора, если в форме договора 4 поля для заполнения для сотрудников? Безденежный(соавтор), Скоробогатов(автор), Богатов(наследник) и Честный(составитель). статусы тогда нужно привязать к полям ввода конкретного сотрудника(у меня был создан один реквизит Статус)? надо подумать)
   Дина88
 
23 - 25.10.19 - 08:24
И еще один момент, в 1С 8 когда переменная не определялась из макета, вот такая строчка помогала найти данные контрагента -
ДанныеКонтрагента=Контрагент.ДанныеКонтрагента;
Макет.Параметры.ДанныеКонтрагента=ДанныеКонтрагента;

В 7.7 не находит реквизит Статус:
л_СтатусАвтора = n_Контекст.Статус; 

Добавила 
Статус = СтатусыСотрудников.Наименование
л_СтатусАвтора = n_Контекст.Статус; 

СтатусыСотрудников это название Справочника, откуда выдергиваются статусы
   Дина88
 
24 - 25.10.19 - 08:26
Все равно не находит, может нужно не во внешней обработке код писать?
   Birmingem
 
25 - 25.10.19 - 09:52
В отладчике посмотрите что показывает ваш n_Контекст
   Дина88
 
26 - 25.10.19 - 10:13
Заместо Макет.Параметры в 7.7 какой аналог кода есть? Таблица.Параметры не действует. Я использовала свойство ячеек Тип - Шаблон, так как с текстом и нужно еще вставить [Статус], возможно из-за этого что-то не так
   ДенисЧ
 
27 - 25.10.19 - 10:17
(26) Переменную в процедуре вывода объяви с таким именем. И ей присваивай
   Провинциальный 1сник
 
28 - 25.10.19 - 10:24
(26) С параметрами в 7.7 всё намного проще. Любой объект и переменная контекста является параметром.
   Дина88
 
29 - 25.10.19 - 10:31
В отладчике во внешних отчетах вообще нет моего макета
   Дина88
 
30 - 25.10.19 - 10:34
Нашла
 
 Рекламное место пустует
   Дина88
 
31 - 25.10.19 - 10:36
Денис, есть реквизит сотрудник, который заполняется из справочника Сотрудники, он никаких ошибок не выдает, хотя сделан так же. Разница в справочниках. Справочник  СтатусыСотрудников сделала сама, в нем в реквизите наименование забила статус.
   Дина88
 
32 - 25.10.19 - 10:37
Имею ввиду, что переменную сотрудник не объявляла
   ДенисЧ
 
33 - 25.10.19 - 10:41
Значит, она где-то есть. Отсюда не видно
   Дина88
 
34 - 25.10.19 - 10:54
Отладчик если я правильно делаю показывает на гл_НомерВерсииКонфигурации = "2.0";
   Злопчинский
 
35 - 25.10.19 - 11:13
сейчас с текучкой разгребусь, если будет охота - можем удаленно вместе посмотреть, задача какая-то детская, а времени на нее потрачено вагон, стукайся в 11:40 где-то в скайп Zlopun
   Злопчинский
 
36 - 25.10.19 - 11:36
(22) "Получается, что одного реквизита статусыСотрудников не достаточно в форме договора,"
- недостаточно ДЛЯ ЧЕГО?
.
как я понял из потока сознания, у тебя в договоре могут быть указаны один или много "субьектов" договора (один или несколько авторов, один или несколько наследниов..)..?
.
"субьект" договора (автор, наследник) - он один или в договоре одновременно указывается несколько разных субьектов - в договоре отдельно упоминается И субъект "автор" (один или несколько) И субъект "наследник" (один или несколько) И...?
.
   Дина88
 
37 - 26.10.19 - 09:18
Кое-как сделала. Оказ. когда в макете договора тип ячейки шаблон, а не выражение, нужно в квадратных скобках прописать еще n_Контекст. Получается [n_Контекст.СтатусСотрудника]
   Дина88
 
38 - 26.10.19 - 09:22
Только сейчас прочитала ваше предложение Злопчинский, эх, проворонила такую возможность. Когда еще можно? С бухгалтером переговорила на тему если 4 сотрудника, то вариантов статусов тоже 4 может быть, она сказала, пока что нет такого, что все участники были с разными статусами, поэтому пока только ед и мн число надо сделать
   Дина88
 
39 - 26.10.19 - 09:24
то есть будет один статус на всех, если 2 и более сотрудников, то все соавторы, если один сотрудник, то Автор.
   Злопчинский
 
40 - 26.10.19 - 16:29
(37) вывод неверный.
шаблон - указывается в скобках.
но в скобках указание nКонтест не имеет никакого отношения к шаблону.
если написано в шаблоне [СтатусСотрудника] - то это переменная\реквизит которая видна в контексте процедуры\функции из которой вы строите макет (область видимости переменных, контекст выполнения - это и в 8-ке есть)
.
у вас в процедуре где вы печатаете - СтатусСотрудника - нет такой переменной\реквизита. у кас в процедуре есть переменная тКонтекст - вот она и видн.зиты этого nКонтест
   Злопчинский
 
41 - 26.10.19 - 16:30
(38) да в любое время можно, хоть сейас, сегодня, завтра.... если я у компа - то отвечаю. если не отвечаю - значит у компа нет
   Злопчинский
 
42 - 26.10.19 - 16:33
(39) ", поэтому пока только ед и мн число надо сделать"
ну, про это уже написал


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.