arefaste/1C_Forums huggingface dataset:
В УТ была такая замечательная функция ВывестиШтрихкодВТабличныйДокумент. Кто-нибудь знает, есть ли подобная в УНФ 1,6!? Никак найти не могу(((
Или в унф в принципе нет ничего подобного!?
---
Вот кусочек кода из обработки печать ценников и этикеток

```1c
    ПараметрыШтрихкода = Новый Структура;
    ПараметрыШтрихкода.Вставить("Ширина", Рисунок.Ширина / КоличествоМиллиметровВПикселе);
    ПараметрыШтрихкода.Вставить("Высота", Рисунок.Высота / КоличествоМиллиметровВПикселе);
    ПараметрыШтрихкода.Вставить("Штрихкод", ЗначениеШтрихкода);
    ПараметрыШтрихкода.Вставить("ТипКода", СтруктураШаблона.ТипКода);
    ПараметрыШтрихкода.Вставить("ОтображатьТекст", Истина);
    ПараметрыШтрихкода.Вставить("РазмерШрифта", 12);
    Рисунок.Картинка = МенеджерОборудованияВызовСервера.ПолучитьКартинкуШтрихкода(ПараметрыШтрихкода);
```
---
Вот кусочек кода из обработки печать ценников и этикеток

```1c
    ПараметрыШтрихкода = Новый Структура;
    ПараметрыШтрихкода.Вставить("Ширина", Рисунок.Ширина / КоличествоМиллиметровВПикселе);
    ПараметрыШтрихкода.Вставить("Высота", Рисунок.Высота / КоличествоМиллиметровВПикселе);
    ПараметрыШтрихкода.Вставить("Штрихкод", ЗначениеШтрихкода);
    ПараметрыШтрихкода.Вставить("ТипКода", СтруктураШаблона.ТипКода);
    ПараметрыШтрихкода.Вставить("ОтображатьТекст", Истина);
    ПараметрыШтрихкода.Вставить("РазмерШрифта", 12);
    Рисунок.Картинка = МенеджерОборудованияВызовСервера.ПолучитьКартинкуШтрихкода(ПараметрыШтрихкода);
```
---
Тоесть нет подобной функции в унф?
---
а это что?

```1c
    МенеджерОборудованияВызовСервера.ПолучитьКартинкуШтрихкода(ПараметрыШтрихкода);
```
Доброе утро, коллеги.
Интересует такой вопрос :

Можно ли передавать функцию как параметр ? т.е.

Допустим есть:

```1c
    Процедура Нажатие(Кнопка)
    ВыполнениеФункции("Первая()")
    КонецПроцедуры

    Функция ВыполнениеФункции(ИмяФункции)
    Результат = ИмяФункции
    Конецфункции

    Функция Первая()
    Возврат = 4;
    Конецфункции

    Функция Вторая()
    Возврат = 5;
    Конецфункции
```

Примерно такое возможно реализовать ?
---
Быть может если только так:

```1c
    Процедура Нажатие(Кнопка)
    ВыполнениеФункции("Первая()")
    КонецПроцедуры

    Функция ВыполнениеФункции(ИмяФункции)
    Результат = Вычислить(ИмяФункции);
    Конецфункции

    Функция Первая()
    Возврат = 4;
    Конецфункции

    Функция Вторая()
    Возврат = 5;
    Конецфункции
```
---
Быть может если только так:

```1c
    Процедура Нажатие(Кнопка)
    ВыполнениеФункции("Первая()")
    КонецПроцедуры

    Функция ВыполнениеФункции(ИмяФункции)
    Результат = Вычислить(ИмяФункции);
    Конецфункции

    Функция Первая()
    Возврат = 4;
    Конецфункции

    Функция Вторая()
    Возврат = 5;
    Конецфункции
```
---
Не мое, но иногда пригождается

```1c
    //Эта функция позволяет в любой момент выполнить любой код на языке 1С над любыми данными, переданными ей.
    //Примеры:
    //= Сообщает некий текст
    //Ду("Сообщить(1)")
    //
    //= Присваивает переменной Отказ значение истина
    //Ду("П=истина", Отказ)
    //
    //= Закрывает форму
    //Ду("П.Закрыть()", ЭтаФорма)
    //
    //= В отладчике нельзя вызвать процедуру, но можно это сделать через ДУ:
    //Ду("ЗавершитьРаботуСистемы()");
    Функция Ду(Код, П=Неопределено, П1=Неопределено, П2=Неопределено, П3=Неопределено, П4=Неопределено) Экспорт
    Перем Р;
    Выполнить(Код);
    Возврат Р;
    КонецФункции
```
---
Только нужно не забывать о безопасности, если конечно она нужна.

ИТС "Ограничения на использование Выполнить и Вычислить на сервере"
---
спасибо всем !
Понадобилось перенести старую базу на 1С 8.2, работавшую на платформе 8.2.19.130 на новый сервер 2012R2 и при запуске setup платформы (от имени администратора) сразу возникает табличка
" Windows Error: Ошибка исполнения функции".

Неужели эта платформа не работает на 2012R2 ?
---
Как исправить данную ошибку:
По адресу C:\ProgramData\1C\1CEStart находим файл 1CEStart.cfg
Открываем его на редактирование блокнотом
Удаляем текст ADMINISTRATIONFUNC=0 и сохраняем файл - только проверь чтобы расширение txt у него не стало.
---
Как исправить данную ошибку:
По адресу C:\ProgramData\1C\1CEStart находим файл 1CEStart.cfg
Открываем его на редактирование блокнотом
Удаляем текст ADMINISTRATIONFUNC=0 и сохраняем файл - только проверь чтобы расширение txt у него не стало.
---
Как исправить данную ошибку:
По адресу C:\ProgramData\1C\1CEStart находим файл 1CEStart.cfg

Спасибо, помогло.
Здравствуйте!
Есть документ в конфигурации на управляемых формах. У данного документа есть две формы списка. Подскажите, пожалуйста, как в разных подсистемах вывести разные формы списка? Спасибо
---
Дополню (3) и (2) Создаете команду для документа, Назначаете имя и Группу - Панель навигации.Обычное. В модуле пишете

```1c
    &НаКлиенте
    Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
    ОткрытьФорму("Документ.<МойДокумент>.Форма.<ВтораяФормаСписка>", , ПараметрыВыполненияКоманды.Источник, ПараметрыВыполненияКоманды.Уникальность, ПараметрыВыполненияКоманды.Окно, ПараметрыВыполненияКоманды.НавигационнаяСсылка);
    КонецПроцедуры
```

Идете во вторую подсистему, Открываете командный интерфейс, Галочку с документа снимаете, на команду ставите
---
Создать для документа разные команды открытия форм списка и настроить их видимость в командном интерфейсе разделов.
---
Дополню (3) и (2) Создаете команду для документа, Назначаете имя и Группу - Панель навигации.Обычное. В модуле пишете

```1c
    &НаКлиенте
    Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
    ОткрытьФорму("Документ.<МойДокумент>.Форма.<ВтораяФормаСписка>", , ПараметрыВыполненияКоманды.Источник, ПараметрыВыполненияКоманды.Уникальность, ПараметрыВыполненияКоманды.Окно, ПараметрыВыполненияКоманды.НавигационнаяСсылка);
    КонецПроцедуры
```

Идете во вторую подсистему, Открываете командный интерфейс, Галочку с документа снимаете, на команду ставите
---
Работает. Спасибо.
---
Видимо, нужна команда, которая бы открывала вторую форму списка
Подскажите пожалуйста как получить реквизит из формы отчета.
---
Если отчёт на СКД, то формировать его программно. Если простой в табличном документе, то посмотреть, откуда берётся результат
---
В продолжение к (2)

```1c
    Результат = Новый ТабличныйДокумент;
    Отчет = Отчеты.<МойОтчет>.Создать();
    Отчет.СкомпоноватьРезультат(Результат, Новый ДанныеРасшифровкиКомпоновкиДанных);
```
---
В продолжение к (2)

```1c
    Результат = Новый ТабличныйДокумент;
    Отчет = Отчеты.<МойОтчет>.Создать();
    Отчет.СкомпоноватьРезультат(Результат, Новый ДанныеРасшифровкиКомпоновкиДанных);
```
---
Если отчёт на СКД, то формировать его программно. Если простой в табличном документе, то посмотреть, откуда берётся результат
Добрый день, на форме два объекта Организация и Подразделение. Как можно Организацию передать в отбор для выбора подразделения?
---
Использовать свойство "Связи параметров выбора" поля подразделения.
---
Использовать свойство "Связи параметров выбора" поля подразделения.
Добрый день, в обработке получил форму документа "НачислениеЗарплаты" и изменил ТЧ. Как можно записать документ?
---
Вот пример кода для перерасчета Отпусков и их проведения в ЗУП 3.1
СписокДокументов - таб. часть в обработке, которая заполняется запросом. Отметка - реквизит типа Булево.

```1c
    &НаКлиенте
    Процедура ПерерасчитатьДокументы()

    НужныеСтроки = Объект.СписокДокументов.НайтиСтроки(Новый Структура("Отметка", Истина));
    Для каждого ТекСтр Из НужныеСтроки Цикл
    ПараметрыОтбора = Новый Структура("Ключ", ТекСтр.Отпуск);
    Форма = ПолучитьФорму("Документ.Отпуск.ФормаОбъекта", ПараметрыОтбора);
    Форма.ПерезаполнитьНачисленияСотрудника();

    ПараметрыЗаписи = Новый Структура;
    ПараметрыЗаписи.Вставить("РежимЗаписи", РежимЗаписиДокумента.Проведение);

    Форма.Записать(ПараметрыЗаписи);

    ТекСтр.Отметка = Ложь;
    КонецЦикла;

    КонецПроцедуры
```
---
объект надо получать, и в нем и менять. Зачем форма
---
форма нужна для выполнения процедуры "Перерасчет"
---
Если с формой больше ничего делать не надо, то можно на сервере:

 обДокумент = РеквизитФормыВЗначение("Объект");
 обДокумент.Записать(<тут нужно указать режим записи>);
---
На сервере записывайте.
---
пример кода?
---
Получаете объект с формы и записываете
---
копироватьданныеформы в реквизит формы, а потом на сервере записать?
---
Вот пример кода для перерасчета Отпусков и их проведения в ЗУП 3.1
СписокДокументов - таб. часть в обработке, которая заполняется запросом. Отметка - реквизит типа Булево.

```1c
    &НаКлиенте
    Процедура ПерерасчитатьДокументы()

    НужныеСтроки = Объект.СписокДокументов.НайтиСтроки(Новый Структура("Отметка", Истина));
    Для каждого ТекСтр Из НужныеСтроки Цикл
    ПараметрыОтбора = Новый Структура("Ключ", ТекСтр.Отпуск);
    Форма = ПолучитьФорму("Документ.Отпуск.ФормаОбъекта", ПараметрыОтбора);
    Форма.ПерезаполнитьНачисленияСотрудника();

    ПараметрыЗаписи = Новый Структура;
    ПараметрыЗаписи.Вставить("РежимЗаписи", РежимЗаписиДокумента.Проведение);

    Форма.Записать(ПараметрыЗаписи);

    ТекСтр.Отметка = Ложь;
    КонецЦикла;

    КонецПроцедуры
```
---
Спасибо, то что нужно, но у меня ещё спрашивает форму открыть, иначе ошибка об Закрытии формы после записи
---
Проанализируйте метод при записи, может это можно параметром каком-то регулировать, чтоб он не пытался закрыть форму, ну или просто напишите записать() внутри "Попытка-Исключение" без обработки самого исключения... некрасиво конечно, но может Вас это устроит
---
о, спасибо, а в попытке- исключение получается код до ошибки отработает?
---
Да . В попытке он пытается выполнить код, в исключении отрабатывает, если произошла ошибка, если в исключении ничего не написано, то он ничего не будет делать, то есть не будет ругаться в вашем случае. По идее так :)
---
ох уж эта ЗУП3
Есть Справочник запчасти(наименование, обозначение, норма)
нужно в документе при изменении реквизита справочник с типом данных(Справочник.Запчасти) что бы реквизит обозначение(СТрока) заполнялся автоматически. я знаю что можно указать путь к данным но мне нужен именно запрос
 Запрос = Новый Запрос;

```1c
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    | Запчасти.Наименование КАК Запчасть,
    | КОЛИЧЕСТВО(Запчасти.Норма) КАК Необходимость,
    | Запчасти.Обозначение
    |ИЗ
    | Справочник.Запчасти КАК Запчасти
    |
    |СГРУППИРОВАТЬ ПО
    | Запчасти.Наименование,
    | Запчасти.Обозначение";

    Результат = Запрос.Выполнить();
    Выборка = Результат.Выбрать();
    Пока Выборка.Следующий() Цикл

    Обозначение = Выборка.Обозначение;
    Необходимость = Выборка.Необходимость;
    КонецЦикла;
```

этот код ничего не выводит
если пишу Запрос.УстановитьПараметр("Запчасть",Объект.Зап.Запчасть);
то не видит поле запчасть
---
(3)
(2)

```1c
    &НаКлиенте
    Процедура ЗапЗапчастьПриИзменении(Элемент)
    СтрокаТабличнойЧасти = Элементы.Зап.ТекущиеДанные;
    СтрокаТабличнойЧасти.Обозначение =ЗапЗапчастьПриИзмененииНаСервере(СтрокаТабличнойЧасти .Запчасть);
    КонецПроцедуры

    &НаСервере
    Функция ЗапЗапчастьПриИзмененииНаСервере(Запчасть)
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    | Запчасти.Обозначение
    |ИЗ
    | Справочник.Запчасти КАК Запчасти
    |ГДЕ
    | Запчасти.Ссылка = &Запчасть";
    Запрос.УстановитьПараметр("Запчасть", Запчасть);
    Результат = Запрос.Выполнить();
    Если Не Результат.Пустой() Тогда
    возврат Результат.Выгрузить()[0][0];
    КонецЕсли;
    возврат ";
    КонецФункции
```
---
практически в любой типовой посмотреть документ у которого в ТЧ есть реквизит номенклатура. На форме такого документа смотреть ТабличноеПоле, там для номенклатуры выводится Код и Артикул.
---
Это что, троллинг? На разных форумах писать разный код одной задачи?
---
Вы, случайно, не на клиенте пытаетесь это всё сделать?
---
(3)
(2)

```1c
    &НаКлиенте
    Процедура ЗапЗапчастьПриИзменении(Элемент)
    СтрокаТабличнойЧасти = Элементы.Зап.ТекущиеДанные;
    СтрокаТабличнойЧасти.Обозначение =ЗапЗапчастьПриИзмененииНаСервере(СтрокаТабличнойЧасти .Запчасть);
    КонецПроцедуры

    &НаСервере
    Функция ЗапЗапчастьПриИзмененииНаСервере(Запчасть)
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    | Запчасти.Обозначение
    |ИЗ
    | Справочник.Запчасти КАК Запчасти
    |ГДЕ
    | Запчасти.Ссылка = &Запчасть";
    Запрос.УстановитьПараметр("Запчасть", Запчасть);
    Результат = Запрос.Выполнить();
    Если Не Результат.Пустой() Тогда
    возврат Результат.Выгрузить()[0][0];
    КонецЕсли;
    возврат ";
    КонецФункции
```
---
А просто вытащить на форму реквизит справочника "Запчасти" не предлагать?
А. Увидел. Не предлагать =)
Здравствуйте, уважаемые любители разработки!
Пишу некоторое дополнение к одной из конфигураций и появился вопрос: какие способы есть и как лучше реализовать данные потребности.
Есть пара документов у которых есть "общий"(на текущий момент в каждом документе это собственный реквизит с совпадающим типом) реквизит и нужно выбрать каким образом значение этого реквизита будет заполняться при открытии формы на клиенте. Значение этого реквизита изначально задается документом №1, затем меняется Документ №2, но эти изменения должны быть отражены и в первом документе. Изначально, я хотел реализовать это с помощью регистра сведений и при открытии формы создавался бы запрос и выбирал значение этого реквизита и таким образом значение хранилось бы только в одном месте из которого мы бы его только получали, но мне кажется это плохим решением(большим опытом разработки похвастаться не могу, как уже поняли), пришел на ум термин "общий реквизит", загуглил, обнаружил, что в 1с это поддерживается. Заглянул в конфигурацию от раруса, ожидая увидеть там большой список этих реквизитов, но увидел всего два, что на вело на мысль о том, насколько целесообразно этой возможностью пользоваться? Поделитесь , пожалуйста, опытом, как лучше реализовать такое поведение?
Версия Предприятия 8.3.14.1694, режим совместимости отключен.
---
в 1С - общий реквизит - это не реквизит в котором хранится одно значение для ряда документов. В каждом документе будет все равно хранится свое собственное значение. Иногда проще работать, чтобы в каждый документ не создавать например Автора документа, можно сделать один общий - автор. Но в каждом объекте он свой.

А в вашем случае, регистр сведений - вполне уместен.
---
в 1С - общий реквизит - это не реквизит в котором хранится одно значение для ряда документов. В каждом документе будет все равно хранится свое собственное значение. Иногда проще работать, чтобы в каждый документ не создавать например Автора документа, можно сделать один общий - автор. Но в каждом объекте он свой.

А в вашем случае, регистр сведений - вполне уместен.
---
Что ж, раз больше никто не хочет высказаться, будем считать это решением. Спасибо!
Доброго.
Вывести большой текст на начальную страницу.
Желательно с гиперссылками, HTML идеально было бы.
---
(8)
делаешь у формы реквизит с типом "Строка" выводишь его на форму , вид элемента формы "Поле HTML документа"
При создании формы:

```1c
    МакетHTML = ПолучитьОбщийМакет("ТвойМакет");

    ТвойРеквизитСтрока = МакетHTML.ПолучитьТекст();
```

         В макете хранишь текст с Html кодом.
---
Как будто с китайского через гугл переводчик переводили....
---
Давай проще, хочу пользователю простынку текста показывать при старте. И чтоб он фиг мог от него спрятаться. Чтобы не говорил, а я не видел, а я не знал.
---
А какая конфигурация?
---
Самописка, УФ. Пользователь работает через веб или тонкий клиент.
---
А в чем проблема? При начале работы системы выводи свою форму, а на ней хоть текст, хоть ХТМЛ.
---
Дык на форму много и красиво запихать не осилили.
---
нууу, значит надо что то убавить: или количество или красоты)
---
Скрол? не?
---
Просто создай свою форму и размести ее на начальной странице. Или запускай обработку после начала работы пользователя с выводом нужной формы.
---
Ок. Куда на форме этот текст запихать?
---
Добавляешь реквизит с типом "Форматированный документ", выносишь его на форму, в коде заполняешь его, если хочешь чтобы было как ХТМЛ.
---
Может форму покажите тогда?)
---
Да любую сделаю, ограничений нет.
---
а вопрос то в чем?)) покажите скрин и что не получается?
---
(8)
делаешь у формы реквизит с типом "Строка" выводишь его на форму , вид элемента формы "Поле HTML документа"
При создании формы:

```1c
    МакетHTML = ПолучитьОбщийМакет("ТвойМакет");

    ТвойРеквизитСтрока = МакетHTML.ПолучитьТекст();
```

         В макете хранишь текст с Html кодом.
---
Дык не получается текста на форму много накидать
Не знаю какой элемент формы использовать для этого.
---
Спасибо. Про макет то я забыл. Торможу что-то.
У меня есть набор типов и значений объектов, мне нужно найти сами объекты.

Например
Справочник.Контрагенты - Кафе Аполлон
Счет бухгалтерского учета - 62.01
Способы погашения задолженности - Автоматически
и т.д

Как собственно найти ссылку на объект?
---
Нужно для каждого типа определить правила поиска объекта.
---
Так а значение объекта что из себя представляет? Какой тип? Если СправочникОбъект, то у него есть ссылка в свойствах
---
Я делаю выгрузку документа, выгружая его реквизиты (т.е выгружаю его тип и значение)
Нужно сделать загрузку.
---
Нужно для каждого типа определить правила поиска объекта.
---
выгружай УИД объекта, соотвественно и ссылку получай по УИДУ при загрузке
---
```1c
    Функция ОпределитьМенеджерОбъекта(ИмяОбъекта)
    Рез = Найти(ИмяОбъекта,".");
    Если Рез Тогда
    мТип = Лев(ИмяОбъекта,Рез-1);
    иИмя = Сред(ИмяОбъекта,Рез+1);
    Если мТип = "Справочник" Тогда
    Менеджер = Справочники;
    ИначеЕсли мТип = "Справочник" Тогда
    Менеджер = Документы;
    ИначеЕсли мТип = "Справочник" Тогда
    Менеджер = Документы;
    //Итд
    КонецЕсли;
    Возврат Менеджер[мИмя];
    КонецЕсли;
    КонецФункции
```
Есть справочник "ВидыДокументов", есть справочник файлы, в котором есть с реквизит с типом справочникссылка.видыдокументов.
так вот, в тч спрвочника виды документов надо получить реквизиты справочника файлы, подскажите как это можно реализовать?
В итоге это все должно быть так:
ИмяРеквизита | КонтрольЗаполнения
будет тут реквизит | Тут галочка
Если стоит галочка то, в справочнике файлы. надо тот реквизит у которого стоит галочка, делать обязательным для заполнения,
---
Для Каждого Реквизит Из Метаданные.Справочники.Файлы.Реквизиты Цикл

ИмяРеквизита = Реквизит.Имя
ПроверкаЗаполнения = Реквизит.ПроверкаЗаполнения

Конеццикла
---
Ну тут все просто, вам нужно сделать запрос к справочнику файлы со связью по данному реквизиту.

```1c
    Запрос = Новый Запрос ("ВЫБРАТЬ Спр.КакойТоРеквизит, Спр.КакойТоРеквизит2, Спр.КакойТоРеквизит3 ИЗ Справочники.Файлы КАК Спр ГДЕ Спр.ВидДокумента = &ВидДокумента ")
```
---
Мне не нужны значения рекизитов, мне нужны реквизиты объекта, их названия, есть справочник файлы, надо просто получить его реквизиты объекта
---
вам нужно типа: наименование, код, вид и т.д. - ну тогда можете же через метаданные обратиться ?? или что то другое?
---
Да да через метаданные, но я еще ноль в этом плане поэтому прошу помощи))
---
вот так можете

```1c
    Для Каждого Реквизит Из Метаданные.Справочники.ИмяСправочника.Реквизиты Цикл

    // тут делаете что нужно

    Конеццикла
```
---
Для Каждого Реквизит Из Метаданные.Справочники.Файлы.Реквизиты Цикл

ИмяРеквизита = Реквизит.Имя
ПроверкаЗаполнения = Реквизит.ПроверкаЗаполнения

Конеццикла
---
Получилось, спасибо. Теперь как-то надо сделать контроль заполнения, например в справочнике файлы выбираем вид файла: Договор, ну а в справочнике ВидыФайлов написано что для этого вида договора надо обязательно заполнять поля: Номер Документа и Дата Документа. И вот при добавлении в справочник файлы документа с видом договор: Договор. Надо обязательно заполнить эти два поля)) можете подсказать примерно как это сделать?
---
Дерзайте! Если что то не будет получаться, то спрашивайте) полный алгоритм вам вряд ли кто подскажет из-за не полноты данных (например, как у вас в справочнике виды файлов отмечаются нужные для заполнения реквизиты)
---
Так полный алгоритм мне вовсе не нужен, мне нужна подсказка с чего начать и тд))
В справочнике виды файлов, точнее виды договоров есть ТЧ, в ней все реквизиты из справочника файлы, в этой тч рядом с реквизитами есть галочка(КонтрольЗаполнения), если там истина, то реквизит надо проверять, если нет то нет.
Для полноты понимания прикреплю скриншот:
---
ох...

```1c
    Процедура ПриИзмененииВидаДоговора()
    Для каждого стр из ВидДоговора.РеквезитыДляДопПроверки цикл
    Если стр.КонтрольЗаполнения Тогда
    Элементы[стр.ИмяРеквизита].ПроверкаЗаполнения=Истина;
    КонецЕсли;
    КонецЦикла;
    КонецПроцедуры
```
---
Используй динамический список с произвольным запросом, левым соединением получай реквизиты файлов.
---
Метаданные.Справочники.Файлы.Реквизиты
---
```1c
    Для Каждого Реквизит Из Метаданные.Справочники.Файлы.Реквизиты Цикл

    ИмяРеквизита = Реквизит.Имя
    ПроверкаЗаполнения = Реквизит.ПроверкаЗаполнения

    Конеццикла
```
Здравствуйте форумчане. Возник вопрос, и я не знаю пока как к нему подобраться. Существует два пользователя, у первого предположим полные права на все данные, в том числе на один важный справочник "Проекты". В этом справочнике он видит все поля, а именно "Кодификатор" (это не код справочника) и "Наименование".

Второй пользователь должен видеть только "Кодификатор" и при этом не видеть названия. Я создал отдельную роль и в принципе нет ничего сложного в том, чтобы ограничить видимость поля по определенной роли. Проблема в другом, реквизит проект указывается в документе. Его представление это наименование, что корректного для первого пользователя, но вот второй пользователь наименование видеть не должен. В самом справочнике, что в форме элемента, что в форме списка так и происходит, но вот в документе он видит название. Как можно это исправить, чтобы второй пользователь видел только кодификатор в документе, а первый видел именно название.
---
```1c
    Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;

    Представление = "(" + Данные.Реквизит1 + ", " + Данные.Реквизит2 + ") " + Данные.Наименование;
    КонецПроцедуры

    Процедура ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;

    Поля.Добавить("Реквизит1");
    Поля.Добавить("Реквизит2");
    Поля.Добавить("Наименование");
    КонецПроцедуры
```

http://qa.erpstat.ru/public/00019.html
---
```1c
    Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;

    Представление = "(" + Данные.Реквизит1 + ", " + Данные.Реквизит2 + ") " + Данные.Наименование;
    КонецПроцедуры

    Процедура ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;

    Поля.Добавить("Реквизит1");
    Поля.Добавить("Реквизит2");
    Поля.Добавить("Наименование");
    КонецПроцедуры
```

http://qa.erpstat.ru/public/00019.html
---
Спасибо
Привет! Смотрю Видео и по нему делаю прайс лист, на видео Платформа 8.1 , а я работаю на 8.3.

Вот что я сделал:

Создал Макет "Прайс Лист" - Заполнил - Открыл Формы- ФормыСписка- Открыл Модуль- Залил Код (Прикреплю Файл) - Затем в Форме хотел создать Кнопку с действием "Печать" но не нашел этого раздела для заполнения(

#Ошибка { Справочник.Номенклатура.Форма.ФормаСписка.Форма(5,38)} :Переменная не определена (РабочаяДата)
ОбластьШапки.Параметры.РабочаяДата = <<?>>РабочаяДата; (Проверка: Сервер)
---
ОбластьШапки.Параметры.РабочаяДата = ТекущаяДатаСеанса(); а если так?
---
Посмотри процедуру "ДобавитьКомандыПечати" в модуле менеджера справочника и сделай аналогично
---
Необходимо заменить ОбластьШапки.Параметры.РабочаяДата = РабочаяДата; на ОбластьШапки.Параметры.РабочаяДата = ОбщегоНазначения.ТекущаяДатаПользователя();
---
Спасибо за помощь, но ошибка по прежнему указывает на ; Переменная не определена (ОбщегоНазначения)
---
ОбластьШапки.Параметры.РабочаяДата = ТекущаяДатаСеанса(); а если так?
---
Спасибо! Работает)
---
но теперь появилась новая ошибка в модуле.
в Предприятие при нажатии кнопки "Создать" выходит ошибка

Х {Справочник.Номенклатура.Форма.ФормаЭлемента.Форма(4,72)}: Ожидается символ ')'