arefaste/1C_Forums huggingface dataset:
Коллеги, добрый день!

Подскажите, пожалуйста, как можно реализовать следующие ограничения:
Необходимо чтобы пользователь видел только свои документы/своих контрагентов и никакие более.
Знаю, что можно реализовать это через Группы доступа, однако у нас в конфигурации ДО редакция 2.1 (2.1.29.16) данный справочник числится неактивным.
Тут два вопроса, можно ли его активировать, если нет - как можно реализовать данный функционал?
Заранее всем спасибо!
---
Настройка и администрирование. Создаете группы доступа контрагентов из карточки группы переходите в политики доступа.
---
см: https://www.doc-lvv.ru/2016/09/prava-dostupa-v-1sdokumentooborot-21.html
---
В настройках прав доступа галка ограничивать права доступа, далее сможете настроить ограничение по рлс
---
ничение по рлс, подскажите, пожалуйста, где конкретно настраиваются права про RLS?
---
Настройка и администрирование. Создаете группы доступа контрагентов из карточки группы переходите в политики доступа.
---
большое спасибо за ответ!
Частично это подходит.
---
подскажите, а можно ограничить доступ на все документы, кроме тех, которых создал сам пользователь?
---
Если вы по контрагентам разграничите то пользователь не сможет видеть или создавать документы по контрагентам не из своей группы доступа.
Что бы пользователь видел созданные им документы лучше рассмотреть вариант с использованием рабочих групп для документа, доступ будут иметь только те кто в рабочей группе.
Если хотите совместить разделение по контрагентам + добавить созданные самим пользователем то видимо придется поменять код разграничений прав доступа конфигурации.
1Ска 8,2. У меня модуле объекта документа есть процедура создания корректирующего документа. Она создает новый документ и открывает ее форму, при этом родителем формы указана форма вызвавшая процедуру (параметр процедуры). Везде нормально работает. Но у меня есть произвольная форма в которой есть вызов этой процедуры и в ней команда

```1c
    Этаформа.Закрыть()
```

так судя по поведению - закрываются обе формы и произвольная и форма нового документа, да еще и с сохранением этого документа, что совсем не правильно.
как сделать так что бы закрылась только вспомогательная?
---
при закрытии формы владельца, все подчиненные формы так же закрываются. Вот из этого и исходите.
---
так судя по поведению - закрываются обе формы и произвольная и форма нового документа, да еще и с сохранением этого документа
Ищите лучше.
Этаформа.Закрыть() точно ничего не сохраняет.
---
при закрытии формы владельца, все подчиненные формы так же закрываются. Вот из этого и исходите.
---
Придумал - у формы же есть свойство "ВледелецФормы"
---
По поведению я догадался. А это можно как нибудь избежать?
---
вдруг кому поможет, без ЭтаФорма. Просто Закрыть();
Доброго времени суток. Сам далек от программирования, скорее, уверенный пользователь 1С, но хочу помочь человеку. Если вкратце, то у собственника магазина жены своеобразное восприятие мира - хочет, чтобы розничные цены в магазине заканчивались только на 0, 3, 5 или 8 рублей, округление в большую сторону. Сейчас на калькуляторах считают и в уме по этому правилу округляют. Сел сам попробовать формулу написать, но что-то не особо успешно. Понимаю, что, скорее всего, в формуле надо использовать округление до целого и остаток от деления на 10, а дальше уже использовать "если"... Но сообразить полную формулу пока не получается. Буду благодарен за любую наводку.
---
?(([ЦенаПоступления]*1.5) % 10 > 8, Цел(([ЦенаПоступления]*1.5)/10)*10+10, ?(([ЦенаПоступления]*1.5) % 10 > 5, Цел(([ЦенаПоступления]*1.5)/10)*10+8, ?(([ЦенаПоступления]*1.5) % 10 > 3, Цел(([ЦенаПоступления]*1.5)/10)*10+5, Цел(([ЦенаПоступления]*1.5)/10)*10+3)))

Вот, товарищ подсказал.
---
Понимаю, что, скорее всего, в формуле надо использовать округление до целого и остаток от деления на 10, а дальше уже использовать "если" Ну, если так, то:

```1c
    Цена=Окр(Цена,0,1);
    ОстатокОтДеления=Цена%10;
    Если ОстатокОтДеления>8 Тогда
    Цена=Цена-ОстатокОтДеления+10;
    ИначеЕсли ОстатокОтДеления>5 Тогда
    Цена=Цена-ОстатокОтДеления+8;
    ИначеЕсли ОстатокОтДеления>3 Тогда
    Цена=Цена-ОстатокОтДеления+5;
    ИначеЕсли ОстатокОтДеления>0 Тогда
    Цена=Цена-ОстатокОтДеления+3;
    КонецЕсли;
```
---
как вариант:

```1c
    Остаток = Цена%10;
    Цена = Цел(Цена/10)*10;
    Если Остаток > 8 Тогда
    Цена = Цена + 10;
    ИначеЕсли Остаток > 5 Тогда
    Цена = Цена + 8;
    ИначеЕсли Остаток > 3 Тогда
    Цена = Цена + 5;
    ИначеЕсли Остаток > 0 Тогда
    Цена = Цена + 3;
    КонецЕсли;
```
---
Благодарю, сейчас буду разбираться как оно работает.
---
Пока получаю ошибку, наверное это не для конструктора цен код. Пробовал и с "Возврат Цена" и без.
---
?(([ЦенаПоступления]*1.5) % 10 > 8, Цел(([ЦенаПоступления]*1.5)/10)*10+10, ?(([ЦенаПоступления]*1.5) % 10 > 5, Цел(([ЦенаПоступления]*1.5)/10)*10+8, ?(([ЦенаПоступления]*1.5) % 10 > 3, Цел(([ЦенаПоступления]*1.5)/10)*10+5, Цел(([ЦенаПоступления]*1.5)/10)*10+3)))

Вот, товарищ подсказал.
---
про конструктор цен должны были догадаться?

(6) повнимательнее потестируйте. Что будет при исходной цене = 100 ?
Не хватает проверки на остаток > 0, чтобы при остатке от деления = 0 не добавлять 3.
---
Спасибо, проверю.
---
Да, вы правы, указал закупочную 100, по идее розничная должны была получиться 150, но посчитало 153.
Добрый день! Подскажите как можно фоново вызвать клиентскую процедуру. На текущий момент при старте системы пользователям в "колокольчик" набиваются все просроченные задачи, как это можно реализовать фоново, и возможно ли?
---
ПодключитьОбработчикОжидания в модуле приложения
---
Вызвать на сервере клиентскую процедуру не представляется возможным.
---
а есть какая альтернатива?
---
открывать форму и набивать там.
---
а с сервера можно вызвать открытие формы? например вызывать диалоговое окно "Вам поступили новые задачи" и после нажатия "ОК", они подгрузились
---
можно
---
примером не поделитесь? куском кода
---
примером не поделитесь? куском кодаЕсть такой парень, зовут его Синтаксис-помощник, он очень добрый и всегда старается помочь! ;) КОд можно посмотреть в типовых конфигурациях, искать например "ОткрытьФорму"
---
понял, спасибо!
---
в клиент-серверной архитектуре именно клиенту приходится инициировать такие действия. Ваш клиент должен проверять ,а не пора ли мне куда-то сходить и чего-то сделать.
---
но как его спровоцировать можно? Регламентно ведь не выйдет
---
ПодключитьОбработчикОжидания в модуле приложения
---
А можно ссылку на статью какую нибудь, еще не сталкивался, боюсь синтаксис помощник не раскроет тему в полном объеме
---
К сожалению ничего под рукой нет в данный момент, но на мой взгляд все не очень сложно:
- располагаете в модуле приложения в процедуре "ПриНачалеРаботыСистемы" код типа ПодключитьОбработчикОжидания("МойПроцедура", 60);
- в том же модуле описываете эту процедура как экспортную, она будет вызываться раз в минуту
- в ней делаете нужные проверки и нужные действия - это уже другая история, не забываете на случай если ваш код будет работать дольше минуты или увеличить начальный интервал или сделать отключение обработчика ожидания в начале и повторное включение в конце.
---
Разобрался, вроде все просто, спасибо, то что нужно, теперь через определенный интервал в секундах вызывается эта клиентская процедура, благодарю за подсказку!!!
Доброго времени суток, подскажите как отправить на печать документ зная путь до файла
---
Я нашел решение

```1c
    AppShell = Новый COMОбъект("Shell.Application");
    AppShell.ShellExecute(ИмяВнешнегоФайла, ", ", "print", 0);
```
---
```1c
    ТабДок = Новый ТабличныйДокумент;
    ТабДок.Вывод = ИспользованиеВывода.Разрешить;
    ТабДок.Напечатать();
```
---
ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать("C:\My Documents\Таблица1.mxl");
ТабДок.Вывод = ИспользованиеВывода.Разрешить;
ТабДок.Напечатать();
---
Я нашел решение

```1c
    AppShell = Новый COMОбъект("Shell.Application");
    AppShell.ShellExecute(ИмяВнешнегоФайла, ", ", "print", 0);
```
Добрый день.

У нас двуязычная 1С - есть английская и русская версия. Для пользователей соответственно установлено какой язык интерфейса выбирается при включении.
Как программно запросить язык текущего сеанса? Или основной язык пользователя базы данных?

Платформа 8.2.19.130

Заранее спасибо.
---
Вопрос решен:

```1c
    ПользователиИнформационнойБазы.ТекущийПользователь().Язык
```
---
Глобальный контекст (Global context)
ТекущийЯзык (CurrentLanguage)
Синтаксис:

ТекущийЯзык()
Возвращаемое значение:

Тип: ОбъектМетаданных: Язык; Строка.
В режиме выполнения "Сервер", "Толстый клиент" и "Внешнее соединение" возвращается ОбъектМетаданных: Язык.
В режиме выполнения "Тонкий клиент, "Веб-клиент", "Мобильное приложение (клиент) и на мобильной платформе возвращается значение свойства КодЯзыка.
Описание:

Получает язык интерфейса, выбранный для текущего пользователя или основной язык, если нет текущего пользователя или для него не указан язык.

Доступность:

Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).
---
Вопрос решен:

```1c
    ПользователиИнформационнойБазы.ТекущийПользователь().Язык
```
---
а чего не ТекущийЯзык() ?
---
ТекущийПользователь = ПользователиИнформационнойБазы.ТекущийПользователь();
    Если ЯзыкДанныхЗначение = Справочники.ЯзыкиДанных.английский Тогда
        ТекущийПользователь.Язык = Метаданные.Языки.Английский;
    Иначе
        ТекущийПользователь.Язык = Метаданные.Языки.Русский;
    КонецЕсли;

    ТекущийПользователь.Записать();
---
А если запущено с /L другой_язык ?
---
А если запущено с /L другой_язык ?

Глобальный контекст (Global context)
ТекущийЯзыкСистемы (CurrentSystemLanguage)
Синтаксис:

ТекущийЯзыкСистемы()
Возвращаемое значение:

Тип: Строка.

Описание:

Возвращает используемый системой язык.

Доступность:

Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).
Суть задачи :
Есть таблица значений - остаток товара на складах.
Колонки: Товар, ДатаПрихода, КоличествоПрихода, ОстатокНаСкладе1, ОстатокНаСкладе2, ОстатокНаСкладе3...

Надо написать процедуру, удаляющую из таблицы все колонки ОстатокНаСкладе за исключением указанной (передается номер, например 3). Колонки Товар, ДатаПрихода и КоличествоПрихода должны остаться.
Буду очень благодарен за помощь
---
синтаксис помощник?
ТаблицаЗначений (ValueTable)
СкопироватьКолонки (CopyColumns)
Синтаксис:
СкопироватьКолонки(<Колонки>)
Параметры:
<Колонки> (необязательный)
Тип: Строка.
Список колонок для копирования в формате: "Колонка1, Колонка2...". Если список не задан, то будут скопированы все колонки.
Возвращаемое значение:
Тип: ТаблицаЗначений.
---
а где твой код ? что не получилось ?
---
вот обработчик , я сделал создание таблицы значений , не получается сделать удаление колонок.
---
синтаксис помощник?
ТаблицаЗначений (ValueTable)
СкопироватьКолонки (CopyColumns)
Синтаксис:
СкопироватьКолонки(<Колонки>)
Параметры:
<Колонки> (необязательный)
Тип: Строка.
Список колонок для копирования в формате: "Колонка1, Колонка2...". Если список не задан, то будут скопированы все колонки.
Возвращаемое значение:
Тип: ТаблицаЗначений.
Доброго дня.
Есть два поля по типу Справочник_Ссылка: Раздел(Категория) и Родитель(Номенклатура).
Хочу сделать что бы при выборе Раздела автоматически заполнялось поле Родитель.

Родитель = Справочники.Номенклатура.НайтиПоНаименованию(Раздел.Наименование, Истина);
Выходит ошибка - "Значение поля "Родитель" должно быть группой.

Группа = Справочники.Номенклатура.НайтиПоНаименованию(Раздел.Наименование, Истина).ЭтоГруппа;
Поле Родитель остается пустым.

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

    ВыборкаРодитель = Запрос.Выполнить().Выбрать();
```

        Родитель = ??

А вот дальше как ?
---
```1c
    Запрос.УстановитьПараметр("Наименование", Раздел.Наименование);
    Выборка = Запрос.выполнить().Выбрать();
    Если Выборка.Следующий() Тогда
    Родитель = Выборка.Ссылка;
    Иначе
    Родитель = Неопределено;
    КонецЕсли;
```
---
Справочники разные, названия одинаковые. Хочется что бы при выборе Раздела осуществлялся поиск по Справочнику Номенклатура по названию и выбиралась именно группа.
В карточке внутреннего документа есть прикрепленные файлы. Пользователи их открывают для редактирования, записывают в Wordе и закрывают. Но при этом остается открытой карточка файла, нужно отдельно нажимать кнопку для ее сохранения. Пользователи этого не делают, закрывают программу. При этом эти файлы являются недоступные для редактирования другим пользователям( помеченные серым цветом). Как можно сделать, чтобы при закрытии файла, закрывалась автоматически карточка этого файла.
---
У меня нету под рукой ДО, тем более 2.1, но я нашёл свою старую обработку, может она пригодится.
---
Как можно сделатьВ 1С примерно никак. Иные программы постоянно проверяют, открыт ли файл, и если он закрылся - делают с ним что-то. Ну или какие-нить колбэки АПИ ОС, но это 1С тоже не умеет так вот просто...
---
Эм... если я правильно помню, то в ДО существует регистр, который при редактировании файла добавляет запись на прикрепленный файл, пользователем/редактором и датой редактирования. И версия на локальном пк не заместит версию в 1с пока не нажать кнопку сохранения, попутно удалив запись из этого служебного регистра, тем самым "освободив файл".
Было дело писал доп обработку, которая удаляла записи в регистре в конце рабочего дня у тех, кто "держал" файлы на редактировании слишком долго и мешал параллельной работе с этими общими файлами.
---
удаляла записи в регистре в конце рабочего дняА при закрытии файла?
---
Есть такой регистр "Файлы в рабочем каталоге компьютера", при открытии файла туда делается запись. Я удаляю эту запись, но файл все равно не освобождается
---
У меня нету под рукой ДО, тем более 2.1, но я нашёл свою старую обработку, может она пригодится.
---
Если говорить про "ДО 2.1 КОРП", то ещё в версии 2.1.18.11 была заявлена функция "Автоматический возврат отредактированных файлов в базу", но она работает не очень стабильно, иногда файлы не помещаются в базу автоматом, закономерности пока не выявил.
---
ДО 2.1 КОРП для Беларуси. Но не нахожу такую функцию
---
А где ищете? Это было указано в описании к обновлению https://dl03.1c.ru/content/DocMngCorp/2_1_18_11/news.htm
Это не какая-то настройка, которую можно найти и включить, это просто код.
Здравствуйте, пытаюся получить данные по ссылке: https://zakupki.gov.ru/epz/order/notice/printForm/viewXml.html?regNumber=0115300018518000004
Там XML это поиск на госзакупках по номеру.

```1c
    Объект.КаталогЗагрузки = "D:/fail_parsing/";
    НашеСоединение = Новый HTTPСоединение("www.zakupki.gov.ru/epz/order/notice/printForm/viewXml.html?regNumber=0373100088321000022");

    ЧтениеXML = Новый ЧтениеXML;
    ИмяФайла = Объект.КаталогЗагрузки + "catalog/" + СтрЗаменить(Каталог, "/", "_") + "test.xml";
    НашеСоединение.Получить(Каталог, ИмяФайла);
    ЧтениеXML.ОткрытьФайл(ИмяФайла);

    ОбъектXDTOИзФайла = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML);
```

В нужном каталоге файл открываешь там только:

```1c
    <ht ml>
    <head><title>301 Moved Permanently</title></head>
    <body>
    <center><h1>301 Moved Permanently</h1></center>
    <hr><center>nginx</center>
    </body>
    </html>
```

а просто по ссылке когда переходишь в браузере там вся инфа есть. И соответственно пытаешся в XDTO ошибку дает:
{Документ.прРасчетыПоПроекту.Форма.ФормаДокумента.Форма(125)}: Ошибка при вызове метода контекста (ПрочитатьXML)
 ОбъектXDTOИзФайла = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML);
по причине:
Ошибка разбора XML: - [6,8]
Фатальная ошибка:
Opening and ending tag mismatch: hr line 5 and body
SystemId: file://D:/fail_parsing/catalog/test.xml
Что делаю не так?
---
Как-то так

```1c
    Соединение = Новый HTTPСоединение("zakupki.gov.ru",,,,,,Новый ЗащищенноеСоединениеOpenSSL);

    Запрос = Новый HTTPЗапрос("epz/order/notice/printForm/viewXml.html?regNumber=0373100088321000022");
    Ответ = Соединение.Получить(Запрос);
    ЧтениеXML = Новый ЧтениеXML;
    ЧтениеXML.УстановитьСтроку(Ответ.ПолучитьТелоКакСтроку());
    ОбъектXDTOИзФайла = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML);
```
---
Если https, надо при создании соединения добавлять SSL.
---
Как-то так

```1c
    Соединение = Новый HTTPСоединение("zakupki.gov.ru",,,,,,Новый ЗащищенноеСоединениеOpenSSL);

    Запрос = Новый HTTPЗапрос("epz/order/notice/printForm/viewXml.html?regNumber=0373100088321000022");
    Ответ = Соединение.Получить(Запрос);
    ЧтениеXML = Новый ЧтениеXML;
    ЧтениеXML.УстановитьСтроку(Ответ.ПолучитьТелоКакСтроку());
    ОбъектXDTOИзФайла = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML);
```
---
Огромнейшее спасибо.
Добрый день! Обработкой настроена выгрузка документа "ПлатежноеПоручениеИсходящее" УПП 1.3 в документ "СписаниеСРасчетногоСчета" БП 3.0. Но проблема возникла с периодом платежного поручения. В УПП 1.3 период представляет собой строку ("ПоказательПериода"), например: "МС.07.2022" ("ПериодичностьПлатежа.Месяц.Год"). Как преобразовать эту строку, чтобы получился период "01.07.2022 0:00:00" для заполнения в документе в БП 3.0?
---
```1c
    ДатаТип = Новый ОписаниеТипов("Дата");
    ПоказательПериодаБП = СтрЗаменить(ПоказательПериода,"МС","01")+" 00:00:00";
    ПоказательПериодаДата = ДатаТип.ПривестиЗначение(ПоказательПериодаБП);
```
---
```1c
    ДатаТип = Новый ОписаниеТипов("Дата");
    ПоказательПериодаБП = СтрЗаменить(ПоказательПериода,"МС","01")+" 00:00:00";
    ПоказательПериодаДата = ДатаТип.ПривестиЗначение(ПоказательПериодаБП);
```
---
Добрый день! отсекаем 8 последних символов - получаем месяц и год. Ставим на начало месяца и начало дня - в принципе сложного ничего нет)
---
Можно в строке добавить " дата = ДАТА("01" + СтрЗаменить(ПРАВ(ИсхСтрока,8),".",""); // получили 1 число искомого месяца
---
Спасибо большое всем! Все получилось!
У меня есть процедура для подсчёта суммы по документу, но нужно сделать так, чтобы суммировались только строки с номенклатурой вида "услуги". Подскажите пожалуйста как записать условие в таком случае?

```1c
    &НаКлиенте
    Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
    Объект.ВознаграждениеМастера = неопределено;
    Для каждого Стр из Объект.ПереченьНоменклатуры цикл
    Объект.ВознаграждениеМастера = Объект.ВознаграждениеМастера + Стр.Сумма;
    КонецЦикла;

    КонецПроцедуры
```
---
перенесите расчет на НаСервере
(примерно так, могут быть опечатки)

```1c
    &НаСервере
    Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
    Объект.ВознаграждениеМастера = 0;// неопределено;
    Для каждого Стр из Объект.ПереченьНоменклатуры цикл
    Если Стр.Номенклатура.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.Услуги Тогда
    Объект.ВознаграждениеМастера = Объект.ВознаграждениеМастера + Стр.Сумма;
    КонецЕсли;
    КонецЦикла;

    КонецПроцедуры
```
---
перенесите расчет на НаСервере
(примерно так, могут быть опечатки)

```1c
    &НаСервере
    Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
    Объект.ВознаграждениеМастера = 0;// неопределено;
    Для каждого Стр из Объект.ПереченьНоменклатуры цикл
    Если Стр.Номенклатура.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.Услуги Тогда
    Объект.ВознаграждениеМастера = Объект.ВознаграждениеМастера + Стр.Сумма;
    КонецЕсли;
    КонецЦикла;

    КонецПроцедуры
```
---
Ну и зачем темы дублировать?
---
Чтобы подсказали конкретное решение а не общую тему
Привет всем.
во внешнем расширении делаю запрос на регистр "Товары на складах об оборотах"

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

    Запрос.УстановитьПараметр("Контрагент", еГ_Контрагент);
    Запрос.УстановитьПараметр("СкладУказан", ЗначениеЗаполнено(Склад));
    Запрос.УстановитьПараметр("Склад", Склад);
    Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
    Запрос.УстановитьПараметр("Начало", Начало);
    Запрос.УстановитьПараметр("Окончание", ?(ЗначениеЗАполнено(Окончание),Окончание,Дата("20330101")));

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

Выдает ошибку при формировании:
Поле не найдено "Контрагент"
И <<?>>Контрагент = &Контрагент

В расширении добавил и документы и реквизиты Контрагент из основной конфы
---
Правильно пишет. В регистре накопления нет измерения Контрагент.
Отбор по контрагенту надо вынести в секцию ГДЕ.
---
В расширении добавил и документы и реквизиты Контрагент из основной конфыТак в регистре нет такого реквизита, он у тебя берется из регистратора. Накладывай уже после выборки в разделе ГДЕ
---
Правильно пишет. В регистре накопления нет измерения Контрагент.
Отбор по контрагенту надо вынести в секцию ГДЕ.
---
В расширении добавил и документы и реквизиты Контрагент из основной конфыТак в регистре нет такого реквизита, он у тебя берется из регистратора. Накладывай уже после выборки в разделе ГДЕ
---
Спасибо, что то не сообразил)
Здравствуйте!
Я считываю пропуска через считыватель SIGUR (Sphinx) Reader-EH. Мне нужно установить программно курсор в поле ввода. По кнопке работает, если установить флаг активизировать по умолчанию. Так же работает

```1c
    &НаКлиенте
    Процедура ПропускПриИзменении(Элемент)

    Сообщить(Объект.Пропуск);
    Команда2НаСервере();
    Объект.Пропуск=";
    Объект.Пропуск = Элементы.Пропуск;

    ПодключитьОбработчикОжидания("ВернутьКурсорНаПолеВвода", 0.1, Истина)

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

    &НаКлиенте
    Процедура ВернутьКурсорНаПолеВвода()

    ЭтотОбъект.ТекущийЭлемент = ЭтотОбъект.Элементы.Пропуск;

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

Но когда считывается, поле не очищается и в текстовом поле пишет ПолеФормы (скрин прилагаю).
Действия должны работать без кнопки.
Подскажите пожалуйста как реализовать.
---
```1c
    Объект.Пропуск=";
    Объект.Пропуск = Элементы.Пропуск;
```

Вот это зачем делаешь?
---
```1c
    Объект.Пропуск=";
    Объект.Пропуск = Элементы.Пропуск;
```

Вот это зачем делаешь?
---
Объект.Пропуск="";
    Объект.Пропуск = Элементы.Пропуск;
не срабатывает, не устанавливается программно курсор в поле ввода.
---
ой... спасибо большое)
---
Спасибо большое очень помогла
(2)