arefaste/1C_Forums huggingface dataset:
Я читал про то, что в обработчике события "ПриПолученииДанных" можно изменять настройки ячеек группы строк. Но и в событии "ПриВыводеСтроки" тоже можно изменять настройки ячейки. Можете подробнее объяснить в чем все таки разница и примеры желательно, в каких случаях нужно использовать событие "ПриВыводеСтроки", а в каких "ПриПолученииДанных"?
---
В ПриПолученииДанных можно редактировать оформление сразу нескольких строк
При выводе строки только одной.
Полезно если требуется выполнять запрос, так как выполнение одного запроса идет меньше времени чем нескольких.
---
В ПриПолученииДанных можно редактировать оформление сразу нескольких строк
При выводе строки только одной.
Полезно если требуется выполнять запрос, так как выполнение одного запроса идет меньше времени чем нескольких.
---
Пример для ПриПолученииДанных:

```1c
    ТЗСписка = Запрос.Выполнить().Выгрузить();
    Для каждого ОформлениеСтроки Из ОформленияСтрок Цикл
    Если ТЗСписка.Найти(ОформлениеСтроки .ДанныеСтроки.Ссылка) <> Неопределено Тогда
    Для каждого ТекЯчейка Из ОформлениеСтроки.Ячейки Цикл
    ТекЯчейка.УстановитьТекст("---");
    КонецЦикла;
    КонецЕсли;
    КонецЦикла;
```
---
Даже если работа с запросом не предполагается, ПриПолученииДанных эффективнее за счет уменьшения количества вызовов обработчика события.
Добрый день !
ERP2 , Документ : Заказы клиентов
Открываю документ, кнопка Печать -> Счет на оплату
Попросили добавить в печатную форму "Договор: Наименование договора"

Подскажите где найти этот макет "Счет на оплату" ?
---
А вы и не искали, ;) печать счетов в ЕРП делается из обработки ПечатьСчетовНаОплату там же и макет
---
а вы программист?
---
Само собой :)
В конфигурации не нашел, это внешняя печатная форма ?!
---
А вы и не искали, ;) печать счетов в ЕРП делается из обработки ПечатьСчетовНаОплату там же и макет
---
Всем спасибо за советы !

Обработка ПечатьСчетовНаОплату : МодульМенеджера : 257

```1c
    // В.Ч.
    Попытка
    ОбластьМакета = Макет.ПолучитьОбласть("вчДоговор");
    СтруктураДанныхДоговор = Новый Структура;
    СтруктураДанныхДоговор.Вставить("ПредставлениеДоговора", ДанныеПечати.Ссылка.Договор.Наименование);
    СтруктураДанныхДоговор.Вставить("вчДоговор", ДанныеПечати.Ссылка.Договор);
    ОбластьМакета.Параметры.Заполнить(СтруктураДанныхДоговор);
    ТабличныйДокумент.Вывести(ОбластьМакета);
    Исключение

    КонецПопытки;
```
Добрый день уважаемые форумчане !!!
Прошу помощи у гуру.

На картинке ниже видно как выделяется кнопка ... Если я нажму клавишу вниз то на УФ желтый квадратик сместится на "Команда 1", а на ОФ черный пунктирчик переместится на "Кнопка 2"

1 - Есть ли какая либо возможножность отловить нажатие клавиши вниз верх, и узнать какая из кнопок сейчас выделена ??? (чтобы изменить цвет данной кнопки...)

2 - Если вышеописанное невозможно есть ли какая возможность сделать оранжевый квадратик на УФ и черный пунктирчик на ОФ пожирнее и измменить их цвет ???

Заранее огромное спасибо !!!
Вознаграждение прилагается ...
---
В УФ только через ПодключитьОбработчикОжидания. А там проверять и менять цвет.

```1c
    &НаКлиенте
    Процедура ПриОткрытии(Отказ)
    ПодключитьОбработчикОжидания("ПроверкаАктивнойКнопки", 0.1, Истина);
    КонецПроцедуры

    &НаКлиенте
    Процедура ПроверкаАктивнойКнопки()

    АктивнаяКнопка = ЭтаФорма.ТекущийЭлемент;
    ОбычныйЦвет = Новый Цвет();

    ЭтаФорма.Элементы.Команда1.ЦветФона = ?(ЭтаФорма.Элементы.Команда1 = АктивнаяКнопка, WebЦвета.Оранжевый, ОбычныйЦвет);
    ЭтаФорма.Элементы.Команда2.ЦветФона = ?(ЭтаФорма.Элементы.Команда2 = АктивнаяКнопка, WebЦвета.Оранжевый, ОбычныйЦвет);

    ПодключитьОбработчикОжидания("ПроверкаАктивнойКнопки", 0.1, Истина);
    КонецПроцедуры
```

В ОФ то же самое, только вместо "Элементы" -> "ЭлементыФормы", в вместо "ЦветФона" -> "ЦветФонаКнопки".

P.S.: На самом деле, конечно же, нужно запоминать последнюю активную кнопку и выполнять сие действия только если она сменилась. А не обновлять цвет элементов постоянно каждые 0.1 секунду.
---
Переключатель можно представить в виде нескольких кнопок, в уф точно, насчёт обычных форм не могу сказать.
Цвета и шрифты настраиваются.
Радио переключатель перемещает курсор в том числе клавиатурой.
---
https://forum.infostart.ru/forum9/topic118724/
---
При активизации событие называется,если я правильно понял задумку.
---
В УФ только через ПодключитьОбработчикОжидания. А там проверять и менять цвет.

```1c
    &НаКлиенте
    Процедура ПриОткрытии(Отказ)
    ПодключитьОбработчикОжидания("ПроверкаАктивнойКнопки", 0.1, Истина);
    КонецПроцедуры

    &НаКлиенте
    Процедура ПроверкаАктивнойКнопки()

    АктивнаяКнопка = ЭтаФорма.ТекущийЭлемент;
    ОбычныйЦвет = Новый Цвет();

    ЭтаФорма.Элементы.Команда1.ЦветФона = ?(ЭтаФорма.Элементы.Команда1 = АктивнаяКнопка, WebЦвета.Оранжевый, ОбычныйЦвет);
    ЭтаФорма.Элементы.Команда2.ЦветФона = ?(ЭтаФорма.Элементы.Команда2 = АктивнаяКнопка, WebЦвета.Оранжевый, ОбычныйЦвет);

    ПодключитьОбработчикОжидания("ПроверкаАктивнойКнопки", 0.1, Истина);
    КонецПроцедуры
```

В ОФ то же самое, только вместо "Элементы" -> "ЭлементыФормы", в вместо "ЦветФона" -> "ЦветФонаКнопки".

P.S.: На самом деле, конечно же, нужно запоминать последнюю активную кнопку и выполнять сие действия только если она сменилась. А не обновлять цвет элементов постоянно каждые 0.1 секунду.
---
Боюсь, что никак. Но когда олигархам хочется - я делаю так... :-))
---
Можно еще поле HTML натянуть :)
---
а в нем javascript и анимацию кнопок :-)
---
да можно почти и без js обойтись. Правда, курсор перемещается tab'ом, а не стрелками.
Конфигурация: "БП 3.0".

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

```1c
    ВЫБРАТЬ различные
    ТоварыОрганизацийОстаткиИОбороты.Номенклатура КАК Номенклатура,
    ТоварыОрганизацийОстаткиИОбороты.СерияНоменклатуры,
    ТоварыОрганизацийОстаткиИОбороты.КоличествоНачальныйОстаток,
    ТоварыОрганизацийОстаткиИОбороты.КоличествоПриход,
    ТоварыОрганизацийОстаткиИОбороты.КоличествоРасход,
    ТоварыОрганизацийОстаткиИОбороты.КоличествоКонечныйОстаток,
    ТоварыОрганизацийОстаткиИОбороты.Регистратор
    ИЗ
    РегистрНакопления.ТоварыОрганизаций.ОстаткиИОбороты(&Дата1, &Дата2, Регистратор, , ) КАК ТоварыОрганизацийОстаткиИОбороты
    ГДЕ
    ТоварыОрганизацийОстаткиИОбороты.Организация = &Организация
    И ТоварыОрганизацийОстаткиИОбороты.КоличествоКонечныйОстаток < 0
    и ТоварыОрганизацийОстаткиИОбороты.КоличествоНачальныйОстаток >= 0

    УПОРЯДОЧИТЬ ПО
    Номенклатура
```
---
Количество остаток меньше нуля. Это называется развернутое сальдо.
---
Немножко не поняла...
У меня УТ10, строить надо по регистру накоплений ТоварыОрганизации. Бух.счетов там нет.
Или я не так нагуглила...

Идея была сделать запрос "Выбрать...", но при этом просчитать кол-ва начальное + приход - расход для каждой строки и если итог по операции < 0, то выбрать эту поз.
---
открываешь отчет на СКД. В УТ 10 не знаю возможно уже были. В отборе ищешь то что написал.
Если с нуля писать, то берешь обороты и делаешь отбор как написал.
---
Разобралась, спасибо. Забыла про регистр ОстаткиИОбороты...

```1c
    ВЫБРАТЬ различные
    ТоварыОрганизацийОстаткиИОбороты.Номенклатура КАК Номенклатура,
    ТоварыОрганизацийОстаткиИОбороты.СерияНоменклатуры,
    ТоварыОрганизацийОстаткиИОбороты.КоличествоНачальныйОстаток,
    ТоварыОрганизацийОстаткиИОбороты.КоличествоПриход,
    ТоварыОрганизацийОстаткиИОбороты.КоличествоРасход,
    ТоварыОрганизацийОстаткиИОбороты.КоличествоКонечныйОстаток,
    ТоварыОрганизацийОстаткиИОбороты.Регистратор
    ИЗ
    РегистрНакопления.ТоварыОрганизаций.ОстаткиИОбороты(&Дата1, &Дата2, Регистратор, , ) КАК ТоварыОрганизацийОстаткиИОбороты
    ГДЕ
    ТоварыОрганизацийОстаткиИОбороты.Организация = &Организация
    И ТоварыОрганизацийОстаткиИОбороты.КоличествоКонечныйОстаток < 0
    и ТоварыОрганизацийОстаткиИОбороты.КоличествоНачальныйОстаток >= 0

    УПОРЯДОЧИТЬ ПО
    Номенклатура
```
---
отбор на начальный остаток лишний!
---
В моем варианте он нужен, т.к. мне нужны именно отрицательные кол-ва, полученные после движения. Поэтому я и регистратор тащу...
Добрый день !
В ТабличнойЧасти документа есть реквизит Субконто1 типа Характеристика.ВидыСубконтоХозрасчетные
Как мне программно его заполнить, если точно известно что это Номенклатура ?

```1c
    // ПрочиеРасходы
    // элНоменклатура = Справочники.Номенклатура.СоздатьЭлемент();
    тчСтр.Субконто1 = элНоменклатура;
```
---
элНоменклатура - должен быть тип "ссылка", а не тип "объект".

Например так:

```1c
    элНоменклатура = Справочники.Номенклатура.СоздатьЭлемент();

    элНоменклатура.Наименование = "Тестовая";
    элНоменклатура.Записать();
    элНоменклатураСсылка = элНоменклатура.Ссылка;

    тчСтр.Субконто1 = элНоменклатура;
```
---
элНоменклатура - должен быть тип "ссылка", а не тип "объект".

Например так:

```1c
    элНоменклатура = Справочники.Номенклатура.СоздатьЭлемент();

    элНоменклатура.Наименование = "Тестовая";
    элНоменклатура.Записать();
    элНоменклатураСсылка = элНоменклатура.Ссылка;

    тчСтр.Субконто1 = элНоменклатура;
```
---
```1c
    тчСтр.Субконто1 = элНоменклатура;
```

заменить на

```1c
    тчСтр.Субконто1 = элНоменклатураСсылка;
```
---
В общем модуле БухгалтерскийУчет есть Процедура УстановитьСубконто(Счет, Субконто, ИмяСубконто, ЗначениеСубконто) - посмотрите как она работает.
---
```1c
    Опер = ОперацияБух.ПолучитьОбъект();
    //Опер.Движения.Хозрасчетный.Очистить();
    РегХозрасчетный = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
    РегХозрасчетный.Отбор.Регистратор.Установить(ОперацияБух.Ссылка);
    РегХозрасчетный.Прочитать();
    РегХозрасчетный.Очистить();
    Для Каждого Стр из ТаблицаДвижений Цикл

    РегЗапись = РегХозрасчетный.Добавить();
    РегЗапись.Период = ОперацияБух.Дата;
    РегЗапись.Регистратор = ОперацияБух;
    РегЗапись.Организация = ОперацияБух.Организация;
    РегЗапись.Содержание = "Свернуто по номенклатуре и складу";
    РегЗапись.СчетДт = Стр.Счет;
    БухгалтерскийУчет.УстановитьСубконто(РегЗапись.СчетДт, РегЗапись.СубконтоДт, "Номенклатура", Стр.Субконто1);
    БухгалтерскийУчет.УстановитьСубконто(РегЗапись.СчетДт, РегЗапись.СубконтоДт, "Склады", Стр.Субконто2);
    РегЗапись.Сумма = Стр.СуммаНоменклатуры;
    РегЗапись.КоличествоДт = Стр.КоличествоНоменклатуры;
    РегЗапись.СчетКт = ПланыСчетов.Хозрасчетный.Вспомогательный;

    КонецЦикла;
    РегХозрасчетный.Записать(Истина);
    //Опер.Комментарий = "План и факт " + Строка()
    Опер.СуммаОперации = ПересчитатьСуммуОперации();
    //Опер.ПолучитьФорму("ФормаДокумента").Открыть();
    Получформ = Опер.ПолучитьФорму("ФормаДокумента");
    //Опер.Движения.Хозрасчетный.об
    Получформ.Открыть();
    Получформ.Обновить();
    //ЭтотОбъект.Движения.Хозрасчетный.Очистить();
```
Добрый день!
Помогите пожалуйста разобраться с формирование печатной формы по Бухгалтерии 3.0.70.50.
Пытаюсь сформировать штатными средствами конфы печатную форму (табличный документ) с печатью и подписью, но ... из-за проблем с отладкой пока не могу понять что ей и куда подсунуть чтобы печать появилась. Есть несколько штатных функций, их я и пытаюсь использовать. Что я блин тут не так делаю? ))
вот только что понял, что не знаю что конкретно правильно подсунуть в "ОбъектыПечати". Описания у функции "ПечатьТорговыхДокументов.ПечатьСчетаНаОплату" нету :(

p.s. если передаю пустой "ОбъектыПечати", то получаю нужный Табличный документ, но без печатей. А если подставляю ссылку на док, то ошибка. Понятно, что ей нужно что-то другое. Но пока не придумал что.

```1c
    // вхДок это просто ссылка на документ счет на оплату покупателю
    ОбъектыПечати = Новый СписокЗначений;
    ОбъектыПечати.Добавить(вхДок);
    МассивОбъектов = Новый Массив();
    МассивОбъектов.Добавить(вхДок);
    ПараметрыПечати = Новый Структура;

    ТаблицаСведенийСчетНаОплату=Документы.СчетНаОплатуПокупателю.ПолучитьТаблицуСведенийСчетаНаОплату(МассивОбъектов);
    ПараметрыПечати.Вставить("ВидДокументаПечати", "СчетНаОплатуПокупателю");
    ПараметрыПечати.Вставить("ИмяПараметровПечати", "ПАРАМЕТРЫ_ПЕЧАТИ_СчетНаОплатуПокупателю_Счет");
    ПараметрыПечати.Вставить("ИмяМакетаПечати", "ОбщийМакет.ПФ_MXL_СчетЗаказ");
    ТаблицаСведенийСчетНаОплату.Колонки.Добавить("Ссылка");
    ТаблицаСведенийСчетНаОплату[0].Ссылка = вхДок;
    ТаблицаСведенийСчетНаОплату[0].Документ = вхДок;
    ТабДок = ПечатьТорговыхДокументов.ПечатьСчетаНаОплату(ТаблицаСведенийСчетНаОплату, ОбъектыПечати, ПараметрыПечати);
```
---
Посмотрите отладчиком что передается в других документах в ОбъектПечати, возможно не Ссылка, а Объект?
---
Посмотрите отладчиком что передается в других документах в ОбъектПечати, возможно не Ссылка, а Объект?
Значит вопрос следующий, те, кто работал с компонентой склонений, знают, что нужно ее зарегистрировать на сервере, но суть в том, что клиенты работают через свой сервер на израильском сервере, и так вопрос, на каком сервере нужно регистрировать компоненту?
---
на каком сервере фактически работает агент сервера 1С, на том и надо регистрировать
---
на каком сервере фактически работает агент сервера 1С, на том и надо регистрировать
---
Да, уже разобрались
Здравствуйте форумчане. Пишу отчет, создал набор данных объект. В модуле прописал простой запрос по выводу ссылок документа (именно ссылок, функция представления не использовалась).

```1c
    СтандартнаяОбработка = Ложь;
    СхемаСКД = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    КомпановщикМакетаКД = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКД = КомпановщикМакетаКД.Выполнить(СхемаСКД, СхемаСКД.НастройкиПоУмолчанию);

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ ПЕРВЫЕ 20
    | АвансовыйОтчет.Ссылка КАК Ссылка
    |ИЗ
    | Документ.АвансовыйОтчет КАК АвансовыйОтчет
    |ГДЕ
    | АвансовыйОтчет.Дата > &Дата";
    Запрос.Параметры.Вставить("Дата", '20190401000000');

    РезультатЗапроса = Запрос.Выполнить();

    Табл = РезультатЗапроса.Выгрузить();
    ВнешниеНаборыДанных = Новый Структура("АвансовыйОтчет", Табл);

    ПроцессорКД = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКД.Инициализировать(МакетКД, ВнешниеНаборыДанных );

    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
    ПроцессорВывода.Вывести(ПроцессорКД);
```

Сразу оговорюсь, данные этого запроса можно вывести в наборе данных запрос, но я просто привел пример, в дальнейшей разработке будет нужна обработка данных в цикле, но без вывода ссылок все это не имеет смысла.

В настройках набора данных указан "Тип значения" - "ДокументСсылка.АвансовыйОтчет". И тем не менее в отчете выходит именно представление ссылки, а не сама ссылка. Как это исправить?
---
В отчет всегда выводится представление ссылки. А за расшифровку отвечает ДанныеРасшифровки и Вы ее в коде проигнорировали
---
В отчет всегда выводится представление ссылки. А за расшифровку отвечает ДанныеРасшифровки и Вы ее в коде проигнорировали
---
Спасибо, Вы правы.
Доброго времени суток,

Бухгалтерия 2.0, обычные формы, в справочнике Пользователи 9 человек, но консоль запроса, как собственно и Справочники.Пользователи.НайтиПоКоду видит только двоих. Запуск с ключом /С ЗапуститьОбновлениеИнформационнойБазы, тестирование и исправление, выгрузка и загрузка в чистую базу результатов не дали.

Буду благодарен за возможные варианты решения
---
ты не путаешь справочник пользователей, с пользователями самой базы ?
Как ты понимаешь, что в справочнике 9 человек ? Покажи скрин где смотришь.
Также покажи текст своего запроса, которым в консоли смотришь
---
ты не путаешь справочник пользователей, с пользователями самой базы ?
Как ты понимаешь, что в справочнике 9 человек ? Покажи скрин где смотришь.
Также покажи текст своего запроса, которым в консоли смотришь
---
Справочник Пользователи и пользователи информационной базы - это два разных справочника.
---
Тысячекратно извиняюсь, уже сам увидел, механизм синхронизации БД - Справочник не работает.
Благодарю за помощь!
Добрый день !
ERP 2.4.7
На форме есть реквизит Док типа "Документ.ПрочиеДоходыРасходы" при попытке .ПолучитьОбъект() выкидывает сообщение об ошибке:

```1c
    ИначеЕсли ТипОбъектаСтр = "Документ.ПрочиеДоходыРасходы" Тогда

    Документ = Объект.Док.ПолучитьОбъект();
```

{ВнешняяОбработка.РегистрацияРасходовЗаполнить.Форма.Форма.Форма(49)}: Ошибка при вызове метода контекста (ПолучитьОбъект)
   Документ = Объект.Док.ПолучитьОбъект();
по причине:
При подписке ЗаполнитьРеквизитыОбъекта на событие ОбработкаЗаполнения произошла ошибка. Обработчик события не найден.

При этом подписка: ЗаполнитьРеквизитыОбъекта
имеет обработчик: ОбщегоНазначенияУТ.ОбработкаЗаполнения

Куда копать ?
---
Спасибо за советы !
Перенес получение объекта в &НаСервере - заработало

```1c
    &НаКлиенте
    ИначеЕсли ТипОбъектаСтр = "Документ.ПрочиеДоходыРасходы" Тогда
    ЗаполнитьДок(Объект.Док.Ссылка, ДанныеXLS);

    &НаСервере
    Процедура ЗаполнитьДок(ДокСсылка, ДанныеXLS)
    Документ = ДокСсылка.ПолучитьОбъект();
```
---
Что такое Док?
Что бы сработало ваше условие надо чтобы Док был реквизитом объекта. Если он как реквизит на форме то надо тогда не Объект, а ЭтотОбъект.Элементы ЗЫ Навскидку, надо посмотреть в отладчике
---
Похоже на то что Док имеет тип не ссылочного типа
---
Спасибо за советы !
Перенес получение объекта в &НаСервере - заработало

```1c
    &НаКлиенте
    ИначеЕсли ТипОбъектаСтр = "Документ.ПрочиеДоходыРасходы" Тогда
    ЗаполнитьДок(Объект.Док.Ссылка, ДанныеXLS);

    &НаСервере
    Процедура ЗаполнитьДок(ДокСсылка, ДанныеXLS)
    Документ = ДокСсылка.ПолучитьОбъект();
```
Добрый день.

Формы неуправляемые, УПП.
Вот есть у меня внешняя обработка в ней создал СКД. А как теперь из формы вызвать эту СКД в стандартной форме отчета (с кнопочками сформировать, настроить и пр.).
Нашел только вариаты в таблицу вывести готовый результат, а хочется именно форму отчета.

В конфе "Основная форма отчета" пустая.
---
Нужен объект "ВнешнийОтчет" в любом случае. Можно в макет обработки добавить отчет-пустышку без СКД в виде двоичных данных.

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

(1) внешняя обработка внешний отчет наверное нужно было
---
нет, именно обработка. Отчет всё просто
---
Нужен объект "ВнешнийОтчет" в любом случае. Можно в макет обработки добавить отчет-пустышку без СКД в виде двоичных данных.

```1c
    ДвоичныеДанныеОтчета = ПолучитьМакет("ВнешнийОтчет1");
    ИмяВременногоФайла = ПолучитьИмяВременногоФайла();
    ДвоичныеДанныеОтчета.Записать(ИмяВременногоФайла);
    ВнешнийОтчет = ВнешниеОтчеты.Создать(ИмяВременногоФайла);
    ВнешнийОтчет.СхемаКомпоновкиДанных = ПолучитьМакет("СКД");
    ФормаОтчета = ВнешнийОтчет.ПолучитьФорму(, ЭтаФорма);
    ФормаОтчета.Открыть();
```
---
Да, этот вариант мне приходил в голову, но уж больно он "костыльный", но похоже это более менее вариант.
Ну или рисовать свою форму для отчета, настроек отчета и всякие обработчики расшифровки и пр.
Добрый день!

Подскажите, пожалуйста, есть пользователь с ограниченными правами (см.Картинку), у которого нет доступа к справочнику сотрудники и, соответственно, его окладу. Пишу для него внешнюю обработку, где мне необходимо получить тарифную ставку (все данные получаю с помощью функции
КадровыйУчет.КадровыеДанныеСотрудников(ТолькоРазрешенные, Сотрудник, "ТарифнаяСтавка") ).
Выводит ТарифнаяСтавка = 0, а под пользователем с полными правами получаю корректную сумму. Какие права необходимо ему добавить или как и где прописать, чтобы получить корректную сумму?
---
Тогда в обработке просто включайте Привелигированный режим
https://its.1c.ru/db/v8std#content:485:hdoc
---
Обалдеть! И что это за сотрудник, который не имеет основного вида доступа?
Ведь без доступа к справочнику Сотрудники он не может вообще ничего в ЗУП, потому что Сотрудник - это основной объект учета..
Чтото вы перемудрили там....
---
значит, в этом есть необходимость. В справочнике Сотрудники содержится много персональных данных, которые не всем пользователям должны быть доступны.
---
Тогда в обработке просто включайте Привелигированный режим
https://its.1c.ru/db/v8std#content:485:hdoc
---
вот этот вариант мне, кажется, подходит! Спасибо.
---
Функция КадровыеДанныеСотрудников(ТолькоРазрешенные, СписокСотрудников, КадровыеДанные, ДатаПолученияДанных = '00010101', ПоляОтбораПериодическихДанных = Неопределено, ФормироватьСПериодичностьДень = Истина)

первый параметр у вас стоит истина?
---
да
---
Поставьте ложь
---
я пробовала, выходила ошибка
1С УТ 10.3.18.5, платформа 8.3.13.1644
Необходимо создать пользователя с правами только на просмотр.
-------------------------------------------
1)Создал новую роль "Только чтение", в которой указаны значения Чтение и Просмотр на справочники. Шаблонов ограничения нет; 2)Создал пользователя и назначил ему роль "Только чтение" и стандартную роль "Пользователь".
-------------------------------------------
При открытии от пользователя элемента справочника "Номенклатура" появляется ошибка "Нарушение прав доступа!"

Что сделать, чтобы открывать элемент справочника только для чтения
---
После появления сообщения об ошибке Вы можете заглянуть в журнал регистрации, дабы определить, к какой именно таблице обращение привело к нарушению прав доступа. Вероятнее всего это будет вовсе не справочник номенклатуры.
---
После появления сообщения об ошибке Вы можете заглянуть в журнал регистрации, дабы определить, к какой именно таблице обращение привело к нарушению прав доступа. Вероятнее всего это будет вовсе не справочник номенклатуры.
---
Ура! Получилось!)
---
Надо было в ролях добавить "Изменение", "Просмотр" двух обработок, которые появлялись в журнале регистрации.
---
В УТ 10.3 в элементе номенклатуры вроде еще отображается РС штрихкоды, и думаю еще чего нибудь. Так что попробуйте как в [2] пишет. Либо остановка по ошибки можно попробовать.
---
в Номенклатуре вроде используются другие справочники?
---
вроде другим справочникам дали права на чтения.
Создал новую роль "Только чтение", в которой указаны значения Чтение и Просмотр на справочники
---
На форме элемента справочника выводятся другие регистры и справочника. Дать права на номенклатуру явно не достаточно.
---
А еще перечисления
---
Не, ну на перечисления права не назначаются. :-)