arefaste/1C_Forums huggingface dataset:
Добрый день! Возможно ли выбрать исполняемый набор данных в зависимости от какого-то параметра (например, если галочка установлена на форме, то выполнять 1 набор)? Спасибо!
---
Быть может у Вас получится сделать отбор аналогично тому, как это реализовано в типовых отчетах? Например, "Отчет.ВыручкаИСебестоимостьПродаж" (ERP, УТ). Там есть отбор и партнеру, и по сегменту.
---
Такую задачу по-разному решают. Например, добавляют объединение наборов данных, параметр для указания нужного набора, в каждый из наборов данных добавляют условие по параметру. Или вовсе дают разные имена полям наборов и используют нужный набор в разных вариантах отчета.

Все зависит от характера данных, схожести наборов данных и т.д.
---
Исполняемую схему компоновки данных всегда можно изменить программно, в том числе и наборы данных. А какая конкретно задача стоит?
---
Результат запроса, да и сам запрос, одинаковый. Мне это нужно для отбора по параметру(если это нужно), но если это нужно мне нужно в запрос добавить новый объект. Запросы и результат запроса одинаковые
---
С таким описанием задачи, вероятнее всего Вам не нужны разные наборы данных. Опишите примерно запрос и используемый параметр, пожалуйста.
---
В запросе есть возможность отобраться по параметру "Партнер", который присутствует в выборке данных, нужна возможность отобраться по этому же параметру "Партнер", но через сегмент партнеров, объект регистр сведений, которого нет изначально в выборке. В итоге нужно отобраться либо по сегменту, либо по выбору партнера
---
Быть может у Вас получится сделать отбор аналогично тому, как это реализовано в типовых отчетах? Например, "Отчет.ВыручкаИСебестоимостьПродаж" (ERP, УТ). Там есть отбор и партнеру, и по сегменту.
---
Вы считаете это самый просто вариант? Посмотрел, пока что, как минимум, в это все вникать нужно, расширения эти... А времени не особо. Спасибо!
---
Вроде разобрался, оказалось проще, чем показалось)) Спасибо!
---
А язык расширений схемы компоновки данных разве не подходит для этого? Т.е. через фигурные скобки указать необязательную часть - реквизит, отбор или что у вас там.
мне нужно в запрос добавить новый объект
О каком объекте речь-то?
Делаю обработку в 1С 8.3. Подскажите метод получения таблицы значений на сервер из клиента при тонком клиенте. Спасибо!
---
Судя по сообщению, Вы пытаетесь присвоить значение таблице формы. Используйте другое имя переменной. Или вовсе не выгружайте, а пользуйтесь непосредственно таблицей формы, если конечно алгоритм это позволяет.
---
Его нет. Преобразовывайте таблицу значений в массив структур. Где-то в БСП вроде даже штатные процедуры были для этих операций
---
```1c
    МассивСтруктур = ОбщегоНазначения.ТаблицаЗначенийВМассив(Таблица);
```
---
Я не правильно сформулировал вопрос, сорри. Реквизит с типом таблица значений выведен на форму. Его можно увидеть как - "Элементы.ТаблицаСчетов". Как его получить на сервер при тонком клиенте.
---
Для начала понять, с чем он связан. Либо это реквизит формы, либо реквизит объекта. Потом в процедуре с грифом &НаСервере через .Выгрузить() получите таблицу значений такой же структуры
---
Это реквизит формы. ".Выгрузить()" - я пробовал, не работает.
---
А что именно не работает? Подозреваю, что Вы использовали метод "Выгрузить()" в процедуре с директивой "&НаКлиенте", либо использовали элементы: "Элементы.ТаблицаСчетов.Выгрузить()".

Соответственно нужно на сервере, и обращаться напрямую к таблице: "ТаблицаСчетов.Выгрузить()".
---
Пишет - "Нельзя изменять поле, содержащее объект данных формы".
---
Судя по сообщению, Вы пытаетесь присвоить значение таблице формы. Используйте другое имя переменной. Или вовсе не выгружайте, а пользуйтесь непосредственно таблицей формы, если конечно алгоритм это позволяет.
---
Я присваивал на переменную "Cчета". Сорри, не знал что может произойти коллизия имён. Спасибо всем!
Господа, доброго времени суток! У меня вопрос по работе с полем планировщика.

В поле планировщика у меня задана единица периодического варианта - час
Кратность периодического варианта - 24
по шкале времени единица времени - час, кратность - 1
В результате по вертикали у меня идут даты, по горизонтали - часы, всего 24 строки, что меня очень устраивает.

Проблема в том, то, когда я добавляю элемент плана вызовом

ЭлементПлана = План.Элементы.Добавить(Начало, Конец)

то, если Начало или Конец не равны целому количеству часов, а содержат часы с минутами (например, начало 13:30, конец 14:00),
то блок, соответствующий элементу, все равно занимает ВСЮ ячейку от 13 до 14 (как показано в присоединяемом файле).

А если начало, например, 13:30, а конец 14:30, то блок займет целиком 2 ячейки от 13 до 14 и от 14 до 15.

Подскажите, пожалуйста, можно ли сделать так, чтобы блок, соответствующий элементу, располагался в окне планировщика не целиком в блоке,
соответствующем часу, а занимал только часть блока, если начало элемента содержит минуты?
---
Попробуйте

Планировщик.ВыравниватьГраницыЭлементовПоШкалеВремени = Ложь;
---
Попробуйте

Планировщик.ВыравниватьГраницыЭлементовПоШкалеВремени = Ложь;
---
accounting_cons, спасибо Вам огромное! Получилось то, что надо!
---
accounting_cons, не могли бы Вы еще подсказать, можно ли как-нибудь увеличить высоту отображаемых элементов планировщика с маленькой длительностью? Например, если начало элемента 15:30:00, конец 15:30:01, то элмент отображается в плане узенькой полоской, на которой даже надпись не помещается. Подскажите, пожалуйста, можно ли увеличить высоту отображаемого прямоугольника? Заранее спасибо!
---
Только если ограничить время суток, отображаемое в планировщике. Тогда все прямоугольники станут побольше в высоту.
---
accounting_cons , понял Вас, спасибо Вам огромное!
Добрый день подскажите, где можно настроить округление до тысячи в программе 1с ЗУП (3.1.8.214)
---
В справочнике Способы округления (для расчета зарплаты)
---
В справочнике Способы округления (для расчета зарплаты)
---
В справочнике Способы округления (для расчета зарплаты)

Спасибо огромное очень выручили!!!!
Добрый день! Помогите пожалуйста понять как настраивать кнопку (checkbox), чтобы по флажку можно было отбирать по детализации до регистратора или без.
Посмотрел СКД стандартного отчета, в параметрах не увидел данного отбора. Если можно объясните на примере этого запроса

```1c
    ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ВыручкаИСебестоимостьПродаж.ЗаказКлиента КАК ЗаказКлиента,
    ВыручкаИСебестоимостьПродаж.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
    ВыручкаИСебестоимостьПродаж.Подразделение КАК Подразделение,
    ВыручкаИСебестоимостьПродаж.Менеджер КАК Менеджер,
    ВыручкаИСебестоимостьПродаж.Склад КАК Склад,
    ВыручкаИСебестоимостьПродаж.ХозяйственнаяОперация КАК Операция,
    ВыручкаИСебестоимостьПродаж.Период КАК Период,
    ВыручкаИСебестоимостьПродаж.СуммаВыручки КАК СуммаВыручки,
    ВыручкаИСебестоимостьПродаж.Количество КАК Количество
    ИЗ
    РегистрНакопления.ВыручкаИСебестоимостьПродаж КАК ВыручкаИСебестоимостьПродаж
    ГДЕ
    (ВыручкаИСебестоимостьПродаж.Период >= &ДатаНачала
    И ВыручкаИСебестоимостьПродаж.Период <= &ДатаКонца
    ИЛИ &ДатаКонца = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0))
```
---
Сделано это так:
1. В настройках структуры отчета добавлена группировка по регистратору.
2. Данная группировка включена в состав пользовательских настроек с заголовком "Детализация до регистратора".
---
Сделано это так:
1. В настройках структуры отчета добавлена группировка по регистратору.
2. Данная группировка включена в состав пользовательских настроек с заголовком "Детализация до регистратора".
---
Спасибо, большое! Даже не думал, что это так просто. Настраивал подобное, только там делал 2 запроса в одном с &Параметр = 0, а в другом &Параметр = 1. И выводил параметр в быстрый доступ по типу булево. Но там получилось таким образом, потому что запросы отличались отбором, а тут группировка просто. Думал принцип схож и ломал голову. Спасибо еще раз
Добрый день!

Мне нужно получить количество календарных дней в месяце.

КОНЕЦПЕРИОДА(ГрафикиРаботыПоВидамВремени.Месяц, МЕСЯЦ) - я получаю, например 31.01.19 23:59:59,

как мне преобразовать к типу число и получить значение 31 из этой даты?
---
То есть вам надо получить день в месяце или что?
Если да, то почему не написать ДЕНЬ(КОНЕЦПЕРИОДА(ГрафикиРаботыПоВидамВремени.Месяц, МЕСЯЦ))
---
То есть вам надо получить день в месяце или что?
Если да, то почему не написать ДЕНЬ(КОНЕЦПЕРИОДА(ГрафикиРаботыПоВидамВремени.Месяц, МЕСЯЦ))
---
В результате должно быть значение 31 числового типа (количество календарных дней в искомом месяце). Числового, потому что потом будет использоваться в расчете.

Т.е.

ДЕНЬ(КОНЕЦПЕРИОДА(ГрафикиРаботыПоВидамВремени.Месяц, МЕСЯЦ))

привела к числовому типу

ВЫРАЗИТЬ(ДЕНЬ(КОНЕЦПЕРИОДА(ГрафикиРаботыПоВидамВремени.Месяц, МЕСЯЦ)) КАК ЧИСЛО(2, 0))

Всё получилось, спасибо!
---
ДЕНЬ(ГрафикиРаботыПоВидамВремени.Месяц)
---
Хотя нет - ДЕНЬ(КОНЕЦПЕРИОДА(ГрафикиРаботыПоВидамВремени.Месяц, МЕСЯЦ)) - так правильней
Пытаюсь проверить на заполненность элемент массива с типом данных строка применением метода для типа данных "Строка" ПустаяСтрока(), но выдает ошибку "Значение не является значением объектного типа(Пустая строка)".
Объясните пожалуйста почему не работает данный метод в этой ситуации и что значит фраза "значение объектного типа"?

```1c
    &НаКлиенте
    Процедура ВыбратьКартинку(Команда)
    ДиалогВыбораТекстовогоФайла=Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    ДиалогВыбораТекстовогоФайла.Заголовок="Выбор картинки";
    ДиалогВыбораТекстовогоФайла.МножественныйВыбор=Ложь;
    ДиалогВыбораТекстовогоФайла.ПредварительныйПросмотр=Истина;
    ДиалогВыбораТекстовогоФайла.Фильтр="Текстовый документ (*.jpg)|*.jpg";
    ОписаниеОповещенияТекстовыйФайл=Новый ОписаниеОповещения("ОбработкаВыбораКартинки",ЭтаФорма);
    ДиалогВыбораТекстовогоФайла.Показать(ОписаниеОповещенияТекстовыйФайл);
    КонецПроцедуры

    &НаКлиенте
    Процедура ОбработкаВыбораКартинки(ВыбранныеФайлы,ДополнительныеПараметры) Экспорт
    Если ВыбранныеФайлы[0].ПустаяСтрока() Тогда
    Сообщить("Не указан путь к изображению. Повторите попытку снова");
    Возврат;
    КонецЕсли;
    КонецПроцедуры
```
---
Не внимательно написал код. Сам нашел ошибку. Нужно писать:

```1c
    ПустаяСтрока(ВыбранныеФайлы[0])
```

Либо

```1c
    ЗначениеЗаполнено(ВыбранныеФайлы[0])
```
---
Почитайте, пожалуйста, синтакс-помощник по методу "Показать" объекта "ДиалогВыбораФайла". Там будет сказано, что "ВыбранныеФайлы" - это либо массив с полными путями к выбранным в диалоге файлам, либо Неопределено, если пользователь закрыл диалог или нажал отмену.

Т.е. Вам достаточно сравнить с Неопределено.
---
Не внимательно написал код. Сам нашел ошибку. Нужно писать:

```1c
    ПустаяСтрока(ВыбранныеФайлы[0])
```

Либо

```1c
    ЗначениеЗаполнено(ВыбранныеФайлы[0])
```
---
лучше ЗначениеЗаполнено(), так как не всегда тип может быть строка
---
Проверить на пустую строку можно методом ЗначениеЗаполнено(). Это во-первых. А во-вторых, вы передаёте же файл, а проверяете строку.
---
Переменная ВыбранныеФайлы содержит ведь ссылки на выбранные файлы, а не файлы.
После получения ссылки я создаю для каждой из них объект Картинка. Передаю его на сервер и там работаю с ним.
Что я не так делаю? Как делать правильно?
---
Почитайте, пожалуйста, синтакс-помощник по методу "Показать" объекта "ДиалогВыбораФайла". Там будет сказано, что "ВыбранныеФайлы" - это либо массив с полными путями к выбранным в диалоге файлам, либо Неопределено, если пользователь закрыл диалог или нажал отмену.

Т.е. Вам достаточно сравнить с Неопределено.
---
Дельный совет. Сам уже исправил, а после прочитал Ваш комментария. Спасибо!
Здравствуйте. Я плохо знаю русский. Извините за этого. Я еще новичок в 1С программирование. Написал запрос, работает. Но показывает не только заполненные строки. Как сделать что в результате было только заполненные строки. В картинке есть 3 строк но только последний из низ заполненный. Как удалить остальные?
Спасибо всем за ранее.
Полный код -

```1c
    ВЫБРАТЬ
    КонтактнаяИнформация.Объект,
    ВЫБОР
    КОГДА ЕСТЬNULL(КонтактнаяИнформация.Поле2,0) = 0
    ТОГДА 0
    ИНАЧЕ КонтактнаяИнформация.Поле2
    КОНЕЦ КАК Поле1,
    ВЫБОР
    КОГДА ЕСТЬNULL(КонтактнаяИнформация.Поле3,0) = 0
    ТОГДА 0
    ИНАЧЕ КонтактнаяИнформация.Поле3
    КОНЕЦ КАК Поле2
    ИЗ
    РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
    ГДЕ
    КонтактнаяИнформация.Объект.Ссылка = &Контрагент
```
---
Как-то так

```1c
    ГДЕ
    КонтактнаяИнформация.Поле2 <> " или КонтактнаяИнформация.Поле3 <> "
```

Или по всему представлению

```1c
    ГДЕ
    Выразить(КонтактнаяИнформация.Представление как Строка(100))<> "
```
---
Как-то так

```1c
    ГДЕ
    КонтактнаяИнформация.Поле2 <> " или КонтактнаяИнформация.Поле3 <> "
```

Или по всему представлению

```1c
    ГДЕ
    Выразить(КонтактнаяИнформация.Представление как Строка(100))<> "
```
---
КонтактнаяИнформация.Поле2 <> "" или КонтактнаяИнформация.Поле3 <> ""
Можете объяснят проблему?
И разница между ЕСТЬNULL и ЕСТЬ NULL и NULL?
Спасибо большое
---
Проблемы нет: В условиях ГДЕ вам нужно отобрать непустые значения,а для строки это именно значения не равные ""

ЕСТЬNULL(КонтактнаяИнформация.Поле2,0) при отсутствии значений возвратит 0, а при присутствии возвратит строковое значение КонтактнаяИнформация.Поле2
КонтактнаяИнформация.Поле2 Есть Null возвратит Истина если значение КонтактнаяИнформация.Поле2 отсутствует, ложь если присутствует

Но, строго говоря, в вашем запросе, так как вы напрямую из регистра записи выбираете КонтактнаяИнформация.Поле2 не может быть Null, оно может быть "" или какой-нибудь заполненной строкой
Параметр = "Индекс";

Как получить значение Индекса?

Запись.Индекс не сойдет, т.к хочу сделать универсальным.

```1c
    Для каждого Строка из МассивПолей цикл
    ОбластьР = "R1C"+q+":R1C"+q;
    Параметр = Строка ;
    Область = ТабДок.Область(ОбластьР);
    Область.Параметр = Параметр;
    Область.Имя = "Шапка";

    Для Каждого Запись Из НаборЗаписей Цикл
    ОбластьР = "R2C"+q+":R2C"+q;

    КонецЦикла;
    q=q+1;
    Конеццикла;
```
---
ну попробуйте через
Значение=вычислить("Запись."+Параметр);
---
параметр табличного документа ? Или реквизит регистра?
---
В параметре табличного документа допустим написано "Индекс", Нужно получить реквизит регистра сведений "Запись.параметрТабличногоДокумента"
---
возможно вы имели в виду номер строки - тогда нужно объявить переменную и в цикле ее увеличивать
---
Запись[1] не сойдет
---
Правильно [1] не сойдет - сойдет Запись[2]
Она и будет равна значению параметра "Индекс"
---
сойдет Запись[3]
---
Ясно - у вас Запись - не массив....
---
не понятно что вы хотите получить
что значит параметр Табличного документа и что значит индекс тогда?
напишите пример
---
вот в 7 написал. Т.е мы задаем имя идентификатора отдельно. И нужно получить значение по данному идентификатору
---
Нужно получить 1. Но 2 нужно записать Запись.Параметр. Значение параметра задается отдельно, в данном случае он будет Параметр = "Индекс"
---
Именно для тех случаев когда наименования элемента массива могут быть различными и применяется цифровой эквивалент
В вашем случае Запись.Параметр и Запись[2] идентичны.
В чем проблема то ?
---
Проблема в том, что Запись - Не является массивом, а является элементом массива
---
ну попробуйте через
Значение=вычислить("Запись."+Параметр);
---
вычислить("Запись."+Параметр)

Это вроде работает
---
А Запись[Параметр]?
---
Тогда

КлючСтруктуры = "Индекс";
ВашИндекс= Запись[КлючСтруктуры];
---
Так тоже пробовал
---
Запись[Параметр]
---
Не работает, пишет что ждет идентификатор
---
Хотите сказать, что вычислить("Запись."+Параметр) работает, а
```1c
    Запись[Параметр]
```
 — нет?
Не верю.
---
а ты проверь вот такое ТабличныйДокумент.Автомасштаб и ТабличныйДокумент["Автомасштаб"]
---
Зачем, если речь шла о записи регистра сведений?
---
если прочтете внимательно условие задачи, то там сказано: Запись.Индекс не сойдет, т.к хочу сделать универсальным.

то есть должно работать не только с регистром сведений
---
Запись[Параметр]
Добрый день. Подскажите пожалуйста как правильно делается такой запрос. Есть документ "СписокЗаказовНаОтгрузку" с табличной частью в которой находятся заказы клиента. Необходимо получить номенклатуру из всех заказов клиента документа "СписокЗаказовНаОтгрузку" пробовал так но видимо чего то не понимаю.

```1c
    ВЫБРАТЬ
    СписокЗаказовНаОтгрузкуЗаказы.Заказ
    ПОМЕСТИТЬ ВТзаказ
    ИЗ
    Документ.СписокЗаказовНаОтгрузку.Заказы КАК СписокЗаказовНаОтгрузкуЗаказы
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ВТзаказ.Заказ.Товары.(
    Номенклатура КАК Поле1
    )
    ИЗ
    ВТзаказ КАК ВТзаказ
```
---
```1c
    ВЫБРАТЬ
    СписокЗаказовНаОтгрузкуЗаказы.Заказ
    ПОМЕСТИТЬ ВТзаказ
    ИЗ
    Документ.СписокЗаказовНаОтгрузку.Заказы КАК СписокЗаказовНаОтгрузкуЗаказы
    ;

    ////////////////////////////////////////////////////////////­­////////////////////
    ВЫБРАТЬ
    ВТзаказ.Заказ как Заказ,
    ВТТовары.Номенклатура как номенклатура
    ИЗ
    ВТзаказ КАК ВТзаказ ЛЕВОЕ СОЕДИНЕНИЕ Документ.Заказ.Товары как втТовары по ВТЗаказ.Заказ=втТовары.Ссылка
```
---
```1c
    ВЫБРАТЬ
    СписокЗаказовНаОтгрузкуЗаказы.Заказ
    ПОМЕСТИТЬ ВТзаказ
    ИЗ
    Документ.СписокЗаказовНаОтгрузку.Заказы КАК СписокЗаказовНаОтгрузкуЗаказы
    ;

    ////////////////////////////////////////////////////////////­­////////////////////
    ВЫБРАТЬ
    ВТзаказ.Заказ как Заказ,
    ВТТовары.Номенклатура как номенклатура
    ИЗ
    ВТзаказ КАК ВТзаказ ЛЕВОЕ СОЕДИНЕНИЕ Документ.Заказ.Товары как втТовары по ВТЗаказ.Заказ=втТовары.Ссылка
```
---
(2Так работает. Спасибо. Я так понимаю в конструкторе такое не провернешь?
---
Как два байта переслать....
Приветствую.

Есть некая функция/процедура расположена в общем модуле, либо в любом другом - не важно. Как посмотреть все места, где вызывается эта функция/процедура ?
---
Глобальным поиском

МояФункция(
МойОбщийМодуль.МояФункция(
---
Глобальным поиском

МояФункция(
МойОбщийМодуль.МояФункция(
---
Спасибо.
Добрый день.
Цель: получить изображение с файлового хранилища и перекодировать текст изображения в формат ANSI.
В обработке создал кнопку и написал код:

```1c
    &НаКлиенте
    Процедура ВыполнитьНажатие(Команда)
    КодировкаКартинкиВANSI("C:\Users\SantiouS\Desktop\zont-more-bereg.jpg");
    КонецПроцедуры

    &НаКлиенте
    Процедура КодировкаКартинкиВANSI(ПолученыйФайл)
    ТекстовыйДокумент=Новый ТекстовыйДокумент;
    ОписаниеОповещенияКартинка=Новый ОписаниеОповещения("ДаннаяПроцедураПолучитТекстВФорматеАНСИ",ЭтаФорма,ДополнительныеПараметры);
    ДополнительныеПараметры=ТекстовыйДокумент.НачатьЧтение(ОписаниеОповещенияКартинка,ПолученыйФайл,КодировкаТекста.ANSI,Символы.ПС);
    КонецПроцедуры

    &НаКлиенте
    Процедура НачалоОтправкиКартинки(ДополнительныеПараметры) Экспорт
    //дальнейшие действия с полученным текстом изображения формата ANSI
    КонецПроцедуры
```

Вопрос: как после выполнения метода "НачатьЧтение" передать в процедуру "ДаннаяПроцедураПолучитТекстВФорматеАНСИ" результат чтения?
В дополнение посоветуйте методы перекодировки текста другими способами, кроме как текстовым файлом.
---
ДополнительныеПараметры.ТекстовыйДокумент.ПолучитьТекст()

Вот тут подробно: Работа с текстовыми файлами в 1С 8.3
---
Создайте экспортную процедуру ДаннаяПроцедураПолучитТекстВФорматеАНСИ на клиенте , она и спработает после начала чтения файла.

Вот она есть уже, только назвали почему-то НачалоОтправкиКартинки
---
В приведенном выше примере ошибся.
Здесь не "НачалоОтправкиКартинки", а "ДаннаяПроцедураПолучитТекстВФорматеАНСИ"

```1c
    &НаКлиенте
    Процедура НачалоОтправкиКартинки(ДополнительныеПараметры) Экспорт
    //дальнейшие действия с полученным текстом изображения формата ANSI
    КонецПроцедуры
```

В какую переменную процедура получит результат?
---
ДополнительныеПараметры.ТекстовыйДокумент.ПолучитьТекст()

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

    КонецПроцедуры
```

Делаю так не получается
---
Обработчик формы "ПриСозданииНаСервере":

```1c
    ЭлементОтбора = ЭтаФорма.Список.Отбор.Элементы.Добавить(Тип("ЭлементОтборКомпоновкиДанных"));
    ЭлементОтбора.ЛевоЗначение = Новый ПолеКомпоновкиДанных("Ответственный");
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    ЭлементОтбора.ПравоеЗначение = Пользователи.ТекущийПользователь();
```
---
Спасибо заработала, только надо сделать исключение Администратору, чтоб он видел все справочники.
---
```1c
    Если Не Пользователи.ЭтоПолноправныйПользователь() Тогда
    ЭлементОтбора = ЭтаФорма.Список.Отбор.Элементы.Добавить(Тип("ЭлементОтборКомпоновкиДанных"));
    ЭлементОтбора.ЛевоЗначение = Новый ПолеКомпоновкиДанных("Ответственный");
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    ЭлементОтбора.ПравоеЗначение = Пользователи.ТекущийПользователь();
    КонецЕсли;
```
---
Спасибо большое!))))
---
Если у тебя динамический список, то в запросе у списка устанавливаешь нужное условие, а в обработчике ПриСозданииНаСервере пишешь
<Твоя таблица>.Параметры.УстановитьЗначениеПараметра("<Название твоего параметра>",Пользователи.ТекущийПользователь());
Здравствуйте!
Делаю отчет СКД как на рис.1 В столбцах есть группировка по периоду, организованная в схеме следующим образом: рис.2. Вопрос: почему в заголовке дважды выводится слово Период и как его оттуда убрать?
---
В выбранных полях на втором скриншоте не нужны никакие другие поля, кроме ресурсов.
---
В выбранных полях на втором скриншоте не нужны никакие другие поля, кроме ресурсов.
---
Верно! Убрала, и одно слово Период исчезло. Но второе почему-то осталось, теперь выглядит так
---
Ура, догадалась! Оказывается группировку можно не называть никак, и соответственно никакого названия выводиться не будет! Спасибо за помощь!