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

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

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

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

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