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

подскажите в чем дело, как его изменить, надо всего лишь убрать одну строчку
---
Вы уверены, что печатаете не внешнюю печатную форму?
---
Стандартный документ и ПФ? если до, то какой документ и какой макет пытаетесь отредактировать?
---
Глупый вопрос, но на бочку нажимаете после того как меняете макет в конфигураторе?
---
Вы уверены, что печатаете не внешнюю печатную форму?
---
Вы уверены, что печатаете не внешнюю печатную форму? Вот и я так подумал. У меня обратная ситуация была - ВПФ ну всю вылизал, а результата нет. Оказалось что сотрудник использовал стандартную, а ее какая-то альтернативно одаренная личность криво поправила в конфигурации...
---
вот так бывает... оказалось у меня внешняя
---
Бывает. Вынос мозга бухами, запарка и пр. прелести корпоративной жизни
Через расширение делаю проведение документа по РС. Не проводится с сообщением: "Ошибка применения расширения конфигурации". В чем проблема и что делать?
---
в режиме отладки запустите польз режим, сделайте проведение документа, чтобы снова появилась ошибка, там будет подробнее, вот этого подробнее и сделайте скриншот
---
если вы найдете ответы на вопросы, то решение примете самостоятельно

Проверку возможности применения жали?
ЖР что пишет?
---
В конфигураторе нужно сделать тестирование расширения (Проверка возможности применения), в диалоговом окне с низу он выдаст что ему не нравится, это и исправите.
---
Проблем применения не обнаружено.

При этом в режиме предприятия - невозможность применения.

Информация для техподдержки - ни о чем.
---
в режиме отладки запустите польз режим, сделайте проведение документа, чтобы снова появилась ошибка, там будет подробнее, вот этого подробнее и сделайте скриншот
---
Поняла.
---
Провела, спасибо!
---
ну ничего себе у вас там поворот, рад что разобрались)
Не получается. (раньше умела)
Подскажите пожалуйста,
 в реквизитах обработки есть Покупатель.
На форме обработки есть Заказ-динамический список, основная таблица - РН Заказы, с ресурсом Покупатель
как?! при открытии обработки Покупатель - пустой - показываем все Заказы, при выборе конкретного покупателя - показываем его заказы.
---
(Покупатель - реквизит обработки, расположен на форме, Заказы - РН, с полями Заказ, Покупатель, Сумма)

```1c
    ПокупательПриИзменении(Элемент)

    ЭлементОтбора = Заказы.Отбор.Элементы;
    ЭлементОтбора.Очистить();
    ЭлементОтбора = Заказы.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
    ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Покупатель");
    ЭлементОтбора.ПравоеЗначение = Объект.Покупатель;
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    ЭлементОтбора.Использование = Истина;
```
---
Кодом устанавливайте отбор динамического списка
---
при изменении покупателя?
---
Ага
---
(Покупатель - реквизит обработки, расположен на форме, Заказы - РН, с полями Заказ, Покупатель, Сумма)

```1c
    ПокупательПриИзменении(Элемент)

    ЭлементОтбора = Заказы.Отбор.Элементы;
    ЭлементОтбора.Очистить();
    ЭлементОтбора = Заказы.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
    ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Покупатель");
    ЭлементОтбора.ПравоеЗначение = Объект.Покупатель;
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    ЭлементОтбора.Использование = Истина;
```
Добрый день, коллеги!

У документа "Заказ покупателя" имеется внешняя печатная форма "(EU) Order confirmation".
После вывода печатной формы, не отображается контактная информация ответственного по некоторым пользователям.
В справочнике "Пользователи" и регистре сведений "Контактная информация" данные заполнены.

```1c
    Функция ПолучитьТелефонИзКонтактнойИнформации(Объект)

    Запрос = Новый Запрос;

    Запрос.УстановитьПараметр("Объект", Объект);
    Запрос.УстановитьПараметр("Тип" , Перечисления.ТипыКонтактнойИнформации.Телефон);

    Запрос.Текст =
    "ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
    | КонтактнаяИнформация.Представление
    |ИЗ
    | РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
    |ГДЕ
    | КонтактнаяИнформация.Объект = &Объект
    | И КонтактнаяИнформация.Тип = &Тип";

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

    Если РезультатЗапроса.Пустой() Тогда
    Возврат ";
    Иначе
    Возврат РезультатЗапроса.Выгрузить()[0].Представление;
    КонецЕсли;

    КонецФункции // ПолучитьТелефонИзКонтактнойИнформации()

    Функция ПолучитьПочтуИзКонтактнойИнформации(Объект)

    Запрос = Новый Запрос;

    Запрос.УстановитьПараметр("Объект", Объект);
    Запрос.УстановитьПараметр("Тип" , Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты);

    Запрос.Текст =
    "ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
    | КонтактнаяИнформация.Представление
    |ИЗ
    | РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
    |ГДЕ
    | КонтактнаяИнформация.Объект = &Объект
    | И КонтактнаяИнформация.Тип = &Тип";

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

    Если РезультатЗапроса.Пустой() Тогда
    Возврат ";
    Иначе
    Возврат РезультатЗапроса.Выгрузить()[0].Представление;
    КонецЕсли;

    КонецФункции // ПолучитьТелефонИзКонтактнойИнформации()

    Шапка.Параметры.Ответственный = Док.Ответственный;

    ВнутреннийНомер = ПолучитьТелефонИзКонтактнойИнформации(Док.Ответственный.ФизЛицо);
    Шапка.Параметры.ТелефонОтветственного = "+7 (495) 995-55-95, ext."+?(СтрДлина(ВнутреннийНомер)=4,Лев(ВнутреннийНомер,2)+"-" + Прав(ВнутреннийНомер,2), ВнутреннийНомер);

    Шапка.Параметры.ТелефонОтветственного = ПолучитьТелефонИзКонтактнойИнформации(Док.Ответственный.ФизЛицо);
```

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

```1c
    ДатаВыдачи = ДатаВыдачи + Направление * 24 * 60 * 60;
```

Иду отладчиком - ожидаемое поведение т.е. увеличивается/уменьшается дата на 1 день, но в режиме предприятия - на 2 дня... ЧЯДНТ?
Управляемые формы, платформа 8.3.15.1565.
ЗЫ. Курил в сторону состава - пытался делать начало/конца дня - эффекта 0, пытался делать через Дата(Год, Месяц, День + Направление) - то же самое..
---
Подозреваю, что Вы не отключили стандартную обработку:

```1c
    СтандартнаяОбработка = Ложь;
```
В итоге Вы добавили день, и платформа добавила день. В результате +2 дня. Удалите свой обработчик в таком случае - он не нужен.
---
Подозреваю, что Вы не отключили стандартную обработку:

```1c
    СтандартнаяОбработка = Ложь;
```
В итоге Вы добавили день, и платформа добавила день. В результате +2 дня. Удалите свой обработчик в таком случае - он не нужен.
---
Действительно.. Спасибо коллега, вначале показалось что неадекватно увеличивает (год или месяц не помню что там показалось.. ) перепроверил по умолчанию все нормально работает не лезь кривыми руками не трогай :-)
---
Кстати не показалось - просто какая часть даты выделена - ту и будет увеличивать/уменьшать. По умолчанию - день изменяет.
Есть ут11, сегмент номенклатуры формируемый динамически - т.е там скд есть
мне программно нужно получить состав сегмента
Беру за основу отчет состав сегмента
но в конце вывод в табличный документ

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

а мне надо таблицу значений
поменяла на

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

Не работает
как получить данные из скд?
---
У меня так.

```1c
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных();
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаПользователя, НастройкиПользователя,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));

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

    Результат = ПроцессорВывода.Вывести(ПроцессорКомпоновки);
```
---
У меня так.

```1c
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных();
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаПользователя, НастройкиПользователя,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));

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

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

У меня есть иерархический справочник Адреса: Улицы -> Дома -> Подъезды (элемент). Мне нужно в форме элемента указать связь одного подъезда с другим. Для этого я сделал поле выбора с ссылкой на справочник Адреса. Сейчас при выборе у меня открывается весь справочник со всеми улицами и домами. Но мне нужно чтобы открывался список подъездов только родителя элемента (так проще выбирать). Как это сделать? Подскажите, пожалуйста.
---
Если УФ

```1c
    ПармаетрыОтбора = новый Структура("Адрес",Справочник.Адреса.НайтиПоКоду("01")); ///Для примера
    ПараметрыФормы = Новый структрура("Отбор",ПараметрыОтбора);
    ОткрытьФорму("Справочник.Адреса.ФормаВыбора",ПараметрыФормы );
```
---
В обработчике НачалоВыбора отключаешь стандартную обработку.
Получаешь форму выбора нужного справочника.
Устанавливаешь отбор дин.списка.
Открываешь форму.

Примерно так:

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

А, забыл сказать. Ставишь условие на поле "Ссылка", вид сравнения "В группе" и передаёшь родителя текущего подъезда.
---
Если УФ

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

Велосипед примерно такой:
Где то хранить макет в конфигурации, а при печати его подтягивать.

Например хранить макет в "ХранилищеНастроек" в справочнике "ДополнительныеОтчетыИОбработки" и сделать дополнительно для внешней печатной формы, открытие своей формы, где будет это редактирование.
Создан документ в конфигурации. Автонумерация. В подписках на ввод нового номера не используется. Произошел какой-то сбой и теперь вместо цифрового номера выводит - "ааа", перелопатил все документы за весь период нет документа с кривым подобным номером. Все номера соответствуют шаблону. Откуда может запомнить такой кривой номер, если документа нет? Есть мысль, что документ такой создали, но затем удалили неспосредственно. и Может ссылка на него осталась и поэтому номер подтягивается?
---
вам выше дали ссылку на статью.
Сделайте обработку с одним методом:

```1c
    ОбновитьНумерациюОбъектов()
```
 И запустите в базе.
---
Есть мысль, что документ такой создали, но затем удалили неспосредственно. - очень вероятно...
---
если так произошло, то как теперь выйти из ситуации? документа физически нет, чтобы исправить нумерацию
---
почитайте https://infostart.ru/public/415406/
---
это не может быть префиксом базы, организации, подразделения?
---
нет, для данного документа префикса нет
---
вам выше дали ссылку на статью.
Сделайте обработку с одним методом:

```1c
    ОбновитьНумерациюОбъектов()
```
 И запустите в базе.
Есть два динамически списка.
В одном группы товаров, в другом элементи без групп

в втором списке хочу отфильтровывать список елементов по родителю

На первом списке в процедуре приАктивизацииСтроки передаю родителя в динамический спиок2, но увы он становится пустым. В чем проблоема?

```1c
    &НаКлиенте
    Процедура СписокГруппПриАктивизацииСтроки(Элемент)
    УстановитьОтборПоИерархииНоменклатуры(Элементы.СписокГрупп.ТекущаяСтрока);
    Элементы.Список.Обновить();
    КонецПроцедуры

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

Этаформа.Список.Отбор.Элементы.Очистить();
---
Посмотрите в эту сторону:

```1c
    ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(...)
```
Здравствуйте. Помогите с ошибкой разобраться "Значение не является значением объектного типа (ВЫПОЛНИТЬ)"

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

ну или

```1c
    Запрос = Новый Запрос("ВЫБРАТЬ...);
```

а у вас Запрос получается строка.
---
Запрос.Текст = "ВЫБРАТЬ
---
```1c
    Запрос.Текст = "ВЫБРАТЬ...
```

ну или

```1c
    Запрос = Новый Запрос("ВЫБРАТЬ...);
```

а у вас Запрос получается строка.
```1c
    &НаКлиенте
    Функция Отправить(Команда)

    //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | ЗаказКлиента.Номер КАК Номер,
    | ЗаказКлиента.Дата КАК Дата,
    | ЗаказКлиента.Партнер КАК Партнер,
    | ЗаказКлиента.Контрагент КАК Контрагент,
    | ЗаказКлиента.СуммаДокумента КАК СуммаДокумента,
    | ЗаказКлиента.Менеджер КАК Менеджер
    |ИЗ
    | Документ.ЗаказКлиента КАК ЗаказКлиента
    |ГДЕ
    | ЗаказКлиента.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
    | И ЗаказКлиента.Проведен = ИСТИНА
    | И ЗаказКлиента.СуммаДокумента >= &СуммаДокумента";

    Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала);
    Запрос.УстановитьПараметр("ДатаОкончания", ДатаОкончания);
    Запрос.УстановитьПараметр("СуммаДокумента", СуммаДокумента);

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

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

    Если ВыборкаДетальныеЗаписи.Следующий() Тогда // Вставить обработку выборки ВыборкаДетальныеЗаписи
    Возврат Истина;

    КонецЕсли;
    Возврат Ложь;

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

```1c
    Процедура РассчитатьСкидкуСотрудникаПоСтроке(ТекСтр, КартаЛояльности, ЦенаРозница)

    ЦенаВход = ВспомогательныеФункции.ПолучитьПоследнююЦенуЗакупки(ТекСтр.Номенклатура);
    Если КартаЛояльности.Владелец = Справочники.ВидыКартЛояльности.СотрудникКомпании Тогда

    Если ЦенаВход <> 0 И ЦенаРозница / ЦенаВход - 1 >= 0.3 Тогда
    КоэфЦеныСотрудник = 0.1;
    Иначе
    КоэфЦеныСотрудник = 0.05;
    КонецЕсли;

    Иначе
    КоэфЦеныСотрудник = 0.2;
    КонецЕсли;

    ЦенаПоВходу = Окр(ЦенаВход+КоэфЦеныСотрудник*ЦенаВход);

    Если ЦенаПоВходу < ТекСтр.Цена Тогда

    ТекСтр.КомментарийСкидки = "Спец. цена сотруднику. Интернет цена "+ТекСтр.Цена;
    ТекСтр.Цена = ЦенаПоВходу;

    КонецЕсли;

    КонецПроцедуры
```
---
ну так в тот же запрос и добавьте условие
И рег.Скидка <= &МаксимальноДопустимоеЗначение
---
(5) можно еще так
```1c
    " ВЫБРАТЬ
    | ВЫБОР КОГДА Вырег.Скидка <= &МаксимальноДопустимоеЗначение
    | ТОГДА Вырег.Скидка
    | ИНАЧЕ &МаксимальноДопустимоеЗначение
    | КОНЕЦ как Скидка
```
---
Что именно не получается ? получить скидку с регистра ?
---
```1c
    Процедура РассчитатьСкидкуСотрудникаПоСтроке(ТекСтр, КартаЛояльности, ЦенаРозница)
    ///ваш код

    МаксСкидка = ПолучитьСкидку(КартаЛояльности.Владелец)

    ///ваш код
    КонецПроцедуры

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

```1c
    возврат Мин(Результат.Скидка, МаксимальноДопустимоеЗначение);
```