|
Документооборот 8 КОРП версия 2.1 Шаблон Ø (Волшебник 12.03.2025 17:14) | ☑ | ||
---|---|---|---|---|
0
Tasha_B_N
naïve
24.02.25
✎
11:45
|
Добрый день! В Шаблоне внутреннего документа есть реквизит Должность, который ничего не выводит, а в реквизитах Подписал и Подготовил, реквизита Должности нет, как вывести Должность Ответственных лиц в шаблон Внутреннего документа?
|
|||
1
d4rkmesa
24.02.25
✎
11:57
|
(0) Без доработки не вывести, по идее, т.к. Подразделение и Должность хранятся в e1cib/list/РегистрСведений.СведенияОПользователяхДокументооборот . Если только в шаблоне, то нужно будет соответствующую автоподстановку добавить.
|
|||
2
Bigbro
24.02.25
✎
11:54
|
а зачем тебе должность ответственного лица в шаблоне документа?
это же реквизит ответственного лица, его в любой момент получить можно, для чего избыточность? |
|||
3
Tasha_B_N
naïve
24.02.25
✎
12:00
|
У меня Докладные записки, должно быть ФИО и должность. Там есть возможность написать Скрипт в настройках заполнения Файла Шаблона, но не очень представляю как они пишутся... Запрос к регистру Сведений Пользователей получается или как...
|
|||
4
maxab72
24.02.25
✎
12:10
|
(0) Добавляется скриптом (окно "Настройки заполнения файла", вторая закладка "Скрипты"):
РезультатОбработки = ""; Сотрудник = Файл.ВладелецФайла.Подготовил; Если ЗначениеЗаполнено(Сотрудник) Тогда ДолжностьСтрока = Строка(РаботаСПользователями.ПолучитьДолжность(Сотрудник)); РезультатОбработки = СклонениеПредставленийОбъектов.ПросклонятьПредставление(ДолжностьСтрока, 2); КонецЕсли; Выводит должность подготовившего документ в родительном падеже. |
|||
5
Bigbro
24.02.25
✎
12:08
|
из регистра сведений СведенияОПользователяхДокументооборот - получить должность по пользователю и все.
|
|||
6
Tasha_B_N
naïve
24.02.25
✎
12:49
|
Спасибо!
|
|||
7
Tasha_B_N
naïve
24.02.25
✎
13:17
|
Получилось вывести должность Подготовившего документ. Мне еще нужно вывести участников рабочей группы, на закладке Рабочая группа участник, может быть папка подразделения с несколькими участниками или построчно люди. Это возможно тоже через Скрипты?
|
|||
8
maxab72
24.02.25
✎
13:44
|
(7) Одной строкой - легко. таблицей сложнее, видел решение, но не сохранил ссылку. Если найду - скину.
|
|||
9
Tasha_B_N
naïve
24.02.25
✎
13:47
|
Хорошо, спасибо!
|
|||
10
maxab72
24.02.25
✎
14:09
|
||||
11
Garykom
гуру
24.02.25
✎
19:44
|
(8) таблицей тоже легко
https://infostart.ru/1c/articles/259510/ если только заполнение нового вот с обновлением (перезаполнением уже отредактированного) проблемы |
|||
12
Tasha_B_N
naïve
25.02.25
✎
09:01
|
Мне несколько значений в шаблон doc вывести, взяв из строк Рабочей группы:
ФИО ФИО ФИО |
|||
13
Bigbro
25.02.25
✎
09:11
|
из регистра рабочие группы достаете пользователей и подразделения
из регистра сведения о пользователях документооборот - пользователей подразделения. получаете свою табличку. |
|||
14
Tasha_B_N
naïve
25.02.25
✎
14:56
|
Я бы хотела добавить скриптом (окно "Настройки заполнения файла", вторая закладка "Скрипты"):
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РабочиеГруппы.Участник |ИЗ | РегистрСведений.РабочиеГруппы КАК РабочиеГруппы |ГДЕ | РабочиеГруппы.Участник = &Участник"; Запрос.УстановитьПараметр("Участник", Файл.ВладелецФайла); Результат = Запрос.Выполнить().Выбрать(); Результат.Следующий(); РезультатОбработки = Результат.РабочиеГруппы; Можно таким образом вывести несколько участников рабочий группы в шаблон? |
|||
15
Garykom
гуру
25.02.25
✎
13:53
|
(14) Придется позвать программиста
Который разбирается в ДО 2.1 |
|||
16
Волшебник
25.02.25
✎
14:58
|
(14) Бессмысленный программный код, да ещё с ошибкой. Нейронка писала?
|
|||
17
d4rkmesa
25.02.25
✎
15:07
|
(14) Так вы заполнили первым значением из выборки. Нужно либо обойти все, либо выгрузить массив различных значений из результата запроса и, к примеру, через СтрСоединить(...) сформировать строку нужного вида.
|
|||
18
Волшебник
25.02.25
✎
15:07
|
(17) нет там такого поля
|
|||
19
Bigbro
25.02.25
✎
15:58
|
(14) перебираете результат 1 запроса к рабочей группе документа/файла.
пользователей в один массив подразделения в другой. делаем второй запрос к регистру сведения о пользователях документооборот, оттуда достаем пользователей, подразделение у которых в массиве подразделений которые мы только что получили. соединяем 2 массива, это и будет ваш результат. только если я правильно помню у вас там помимо пользователей и подразделений могут быть еще рабочие группы в строках. их тоже надо раскручивать тогда. |
|||
20
Tasha_B_N
naïve
25.02.25
✎
16:01
|
//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
// Данный фрагмент построен конструктором. // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РабочиеГруппы.Участник КАК Участник |ИЗ | РегистрСведений.РабочиеГруппы КАК РабочиеГруппы |ГДЕ | РабочиеГруппы.Участник = &Участник Запрос.УстановитьПараметр("Участник", Участник); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл // Вставить обработку выборки ВыборкаДетальныеЗаписи КонецЦикла; //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА |
|||
21
Tasha_B_N
naïve
25.02.25
✎
16:16
|
Писал конструктор запроса 1с, брала из регистра сведений рабочие группы из таблицы измерение участник.
Отличие написания в конфигураторе и скриптах - Файл.ВладелецФайла... В конфигураторе обходишь циклом выборку из запроса, а как написать в Скрипт? |
|||
22
Волшебник
25.02.25
✎
16:22
|
(21) Конструктор лучше Вас пишет.
|
|||
23
Bigbro
25.02.25
✎
16:33
|
запросы в скрипте точно так же, различий нет.
|
|||
24
Tasha_B_N
naïve
26.02.25
✎
16:54
|
РезультатОбработки =
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РабочиеГруппы.Участник КАК Участник |ИЗ | РегистрСведений.РабочиеГруппы КАК РабочиеГруппы |ГДЕ | РабочиеГруппы.Участник = &Участник"; Запрос.УстановитьПараметр("Участник", Файл.ВладелецФайла.Участник); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл ВыборкаДетальныеЗаписи.Участник = Участник; КонецЦикла; Запрос в скрипт взяла из конструктора, только дописала в начале: "РезультатОбработки =" и изменила параметр на тот что используется в шаблоне файла: "Файл.ВладелецФайла.Участник" Что здесь не так? |
|||
25
Bigbro
26.02.25
✎
17:32
|
Файл.ВладелецФайла.Участник
что у вас такое владелец файла? скорее всего какой то документ внутренний входящий исходящий есть ли у него реквизит участник? |
|||
26
Tasha_B_N
naïve
12.03.25
✎
10:42
|
Реквизита Участник нет, в форме Документа табличная часть РабочаяГруппаТаблица и в ней Участник - РабочаяГруппаТаблицаУчастник.
Как до него достучаться, если он выбирается на форме и нигде в реквизитах не присутствует? |
|||
27
maxab72
12.03.25
✎
10:56
|
(26) Через измерение Объект регистра сведений РабочиеГруппы. Указываете в объекте ссылку на ваш текущий документ.
|
|||
28
Tasha_B_N
naïve
12.03.25
✎
11:09
|
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ | РабочиеГруппы.Участник КАК Участник, | ВнутренниеДокументы.ВидДокумента КАК ВидДокумента, | ВнутренниеДокументы.Ответственный КАК Ответственный, | ВнутренниеДокументы.Подразделение КАК Подразделение, | ВнутренниеДокументы.Содержание КАК Содержание, | ВнутренниеДокументы.Создал КАК Создал, | ВнутренниеДокументы.Должность КАК Должность, | ВнутренниеДокументы.Ссылка КАК Ссылка |ИЗ | РегистрСведений.РабочиеГруппы КАК РабочиеГруппы | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВнутренниеДокументы КАК ВнутренниеДокументы | ПО РабочиеГруппы.Объект = ВнутренниеДокументы.Ссылка"; РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Участник = ВыборкаДетальныеЗаписи.Участник; КонецЦикла; Запрос переписала, а какой параметр указать для Файл.ВладелецФайла...? |
|||
29
Волшебник
12.03.25
✎
11:10
|
(28) Вы выбрали все документы без отбора. Вы подвесили сервер и уволены.
|
|||
30
maxab72
12.03.25
✎
11:17
|
(28) Надо наоборот, к документу присоединять левым запросом рабочую группу. В документе указать отбор: ВнутренниеДокументы.Ссылка = &Ссылка и в параметрах УстановитьПараметр("Ссылка", Файл.ВладелецФайла).
Тогда к меньшей выборке (1 запись) будете присоединять часть данных из РС (несколько штук). |
|||
31
Волшебник
12.03.25
✎
11:27
|
(30) Это правильно.
|
|||
32
maxab72
12.03.25
✎
11:32
|
(29)
- Сервер не работает, потому что Вася его уронил... - Вася - крутой хакер? - Нет, Вася - дебил криворукий, он его на пол уронил... |
|||
33
Tasha_B_N
naïve
12.03.25
✎
13:57
|
РезультатОбработки =
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РабочиеГруппы.Участник КАК Участник, | ВнутренниеДокументы.ВидДокумента КАК ВидДокумента, | ВнутренниеДокументы.Ответственный КАК Ответственный, | ВнутренниеДокументы.Подразделение КАК Подразделение, | ВнутренниеДокументы.Содержание КАК Содержание, | ВнутренниеДокументы.Создал КАК Создал, | ВнутренниеДокументы.Должность КАК Должность, | ВнутренниеДокументы.Ссылка КАК Ссылка |ИЗ | Справочник.ВнутренниеДокументы КАК ВнутренниеДокументы | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РабочиеГруппы КАК РабочиеГруппы | ПО ВнутренниеДокументы.Ссылка = РабочиеГруппы.Объект |ГДЕ | ВнутренниеДокументы.Ссылка = &Ссылка"; УстановитьПараметр("Ссылка", Файл.ВладелецФайла); Имелось ввиду так? |
|||
34
maxab72
12.03.25
✎
14:01
|
Лучше так:
| ПО ВнутренниеДокументы.Ссылка = &Ссылка | И ВнутренниеДокументы.Ссылка = РабочиеГруппы.Объект иначе сперва выбираются все внутренние документы, соединяются а потом фильтруются, а так сперва фильтруются а потом выжимка соединяется. |
|||
35
Tasha_B_N
naïve
12.03.25
✎
14:40
|
РезультатОбработки =
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РабочиеГруппы.Участник КАК Участник, | ВнутренниеДокументы.ВидДокумента КАК ВидДокумента, | ВнутренниеДокументы.Ответственный КАК Ответственный, | ВнутренниеДокументы.Подразделение КАК Подразделение, | ВнутренниеДокументы.Содержание КАК Содержание, | ВнутренниеДокументы.Создал КАК Создал, | ВнутренниеДокументы.Должность КАК Должность, | ВнутренниеДокументы.Ссылка КАК Ссылка |ИЗ | Справочник.ВнутренниеДокументы КАК ВнутренниеДокументы | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РабочиеГруппы КАК РабочиеГруппы | ПО ВнутренниеДокументы.Ссылка = РабочиеГруппы.Объект |ГДЕ | ВнутренниеДокументы.Ссылка = &Ссылка | И ВнутренниеДокументы.Ссылка = РабочиеГруппы.Объект"; Запрос.УстановитьПараметр("Ссылка",Файл.ВладелецФайла); Добавила в скрипт пишет скрипты настройки заполнения файла заданы некорректно... |
|||
36
Bigbro
12.03.25
✎
14:44
|
ну так в результат обработки же затолкала то что в результате перебора выборки из запроса получилось?
|
|||
37
Tasha_B_N
naïve
12.03.25
✎
14:56
|
РезультатОбработки =
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РабочиеГруппы.Участник КАК Участник, | ВнутренниеДокументы.ВидДокумента КАК ВидДокумента, | ВнутренниеДокументы.Ответственный КАК Ответственный, | ВнутренниеДокументы.Подразделение КАК Подразделение, | ВнутренниеДокументы.Содержание КАК Содержание, | ВнутренниеДокументы.Создал КАК Создал, | ВнутренниеДокументы.Должность КАК Должность, | ВнутренниеДокументы.Ссылка КАК Ссылка |ИЗ | Справочник.ВнутренниеДокументы КАК ВнутренниеДокументы | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РабочиеГруппы КАК РабочиеГруппы | ПО ВнутренниеДокументы.Ссылка = РабочиеГруппы.Объект |ГДЕ | ВнутренниеДокументы.Ссылка = &Ссылка | И ВнутренниеДокументы.Ссылка = РабочиеГруппы.Объект"; УстановитьПараметр("Ссылка", Файл.ВладелецФайла); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Участник = ВыборкаДетальныеЗаписи.Участник; КонецЦикла; Все что в 1с с дописыванием "РезультатОбработки =" и "Файл.ВладелецФайла". |
|||
38
maxab72
12.03.25
✎
15:02
|
(35) Убери ГДЕ, все фильтры включи в ПО
|
|||
39
Bigbro
12.03.25
✎
15:09
|
РезультатОбработки="";
и перед конецЦикла РезультатОбработки = РезультатОбработки + " " + Участник; получится строка участников через пробелы. |
|||
40
Tasha_B_N
naïve
12.03.25
✎
15:16
|
РезультатОбработки="";
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РабочиеГруппы.Участник КАК Участник, | ВнутренниеДокументы.ВидДокумента КАК ВидДокумента, | ВнутренниеДокументы.Ответственный КАК Ответственный, | ВнутренниеДокументы.Подразделение КАК Подразделение, | ВнутренниеДокументы.Содержание КАК Содержание, | ВнутренниеДокументы.Создал КАК Создал, | ВнутренниеДокументы.Должность КАК Должность, | ВнутренниеДокументы.Ссылка КАК Ссылка |ИЗ | Справочник.ВнутренниеДокументы КАК ВнутренниеДокументы | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РабочиеГруппы КАК РабочиеГруппы | ПО ВнутренниеДокументы.Ссылка = РабочиеГруппы.Объект |ГДЕ | ВнутренниеДокументы.Ссылка = &Ссылка | И ВнутренниеДокументы.Ссылка = РабочиеГруппы.Объект"; УстановитьПараметр("Ссылка", Файл.ВладелецФайла); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Участник = ВыборкаДетальныеЗаписи.Участник; РезультатОбработки = РезультатОбработки + " " + Участник; КонецЦикла; Вроде бы все верно, но все равно скрипты настройки заполнения файла заданы некорректно... |
|||
41
maxab72
12.03.25
✎
15:19
|
(0) не просто УстановитьПараметр("Ссылка", Файл.ВладелецФайла); а Запрос.УстановитьПараметр("Ссылка", Файл.ВладелецФайла);
и исправить текст запроса. |
|||
42
Tasha_B_N
naïve
12.03.25
✎
15:56
|
Точно забыла написать Запрос, на это ругалось!
Спасибо ребят огромное, все заработало! |
|||
43
Волшебник
12.03.25
✎
16:28
|
(42) тупой бот
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |