arefaste/1C_Forums huggingface dataset:
Имеется обработка, там несколько объектов "ТабличныйДокумент1", ТабличныйДокумент2, ТабличныйДокумент3

Почему в обычных формах "Поле Табличного Документа" можно редактировать, вносить данные, а в уф нет? Видимость, доступность, просмотр, все смотрел
---
Возможно, пропустили свойство поля табличного документа "Редактировать", группа свойств "Использование"
---
Возможно, пропустили свойство поля табличного документа "Редактировать", группа свойств "Использование"
---
Точно :)
---
в УФ нет запрета на изменение макетов программно, смотря что именно делаешь
---
Для начала, Вам почитать тут:
http://infostart.ru/public/198766/

Если коротко, архитектура тонкого клиента требует чёткого разделения данных (реквизитов) и элементов управления.
Здравствуйте, задам скорее всего глупый вопрос, но не могу разобраться с ним. Мне нужно сравнить дату документа с датой 01.07.2017,

```1c
    Если РеквизитыДокумента.Дата < ДатаВремя(2017,07,01) Тогда
    Макет = ПолучитьМакет("УПДСтарый");
    Иначе
    Макет = ПолучитьОбщийМакет("УниверсальныйПередаточныйДокумент");
```

Как правильно задать свою дату? Пишет "Процедура или функция с указанным именем не определена (ДатаВремя)".
---
Если РеквизитыДокумента.Дата < Дата(2017,07,01) Тогда
---
Если РеквизитыДокумента.Дата < Дата(2017,07,01) Тогда
---
Блин, спасибо:)
---
Дата("20170701000000")
Здравствуйте, уважаемые форумчане! Конфигурация учет ЖКХ, ТСЖ 3.0.
Приведу пример результат запроса, который у меня есть.
Вода | л/c 1 | 100
Газ | л/c 1 | 100
Мне нужно эти запросы сгруппировать по лицевому счету(л/с). Чтобы получилось вот так:
л/с 1 | 200, а вода или газ меня вообще не интересуют. Вопрос легкий, но разобраться времени нет( В сбербанк надо сделать выгрузку через пару часов. Подскажите?
---
```1c
    ВЫБРАТЬ
    ИмяТаблицы.ЛицевойСчет КАК ЛС,
    СУММА(ИмяТаблицы.Сумма) КАК Сумма
    ИЗ
    ИмяТаблицы КАК ИмяТаблицы
    СГРУППИРОВАТЬ ПО
    ИмяТаблицы.ЛицевойСчет
```
---
Проще некуда:

Выбрать
ЛицевойСчет,
Сумма(Количество) КАК Количество
Из ВашаТаблица
СГРУППИРОВАТЬ ПО
ВашаТаблица.ЛицевойСчет
---
```1c
    ВЫБРАТЬ
    ИмяТаблицы.ЛицевойСчет КАК ЛС,
    СУММА(ИмяТаблицы.Сумма) КАК Сумма
    ИЗ
    ИмяТаблицы КАК ИмяТаблицы
    СГРУППИРОВАТЬ ПО
    ИмяТаблицы.ЛицевойСчет
```
---
Корректнее с именем таблицы. отв (2)
Подскажите что не так делаю. В модуле формы прописал
```1c
    &НаСервере
    Перем а;

    &НаКлиенте
    Процедура Общая()
    НачальноеЗаполнение();
    Расчеты();

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

    &НаСервре
    Процедура НачальноеЗаполнение()
    а=2;
    КонецПроцедуры

    &НаСервре
    Процедура Расчеты()
    //Тут переменная "а" уже ровна Неопределенно
    КонецПроцедуры
```

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

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

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

```1c
    Выбор
    Когда поле.ПолРебенка = Значение(перечисление.Пол.мальчик) тогда
    1
    Иначе
    0
    Конец
```

И втрое поле, также, только по девочками.
На выходе, посчитав сумму по той или иной колонке, получишь количество
---
добавляешь вычисляемое поле
в нем

```1c
    Выбор
    Когда поле.ПолРебенка = Значение(перечисление.Пол.мальчик) тогда
    1
    Иначе
    0
    Конец
```

И втрое поле, также, только по девочками.
На выходе, посчитав сумму по той или иной колонке, получишь количество
---
как посчитать сумму ? Сделать группировку и вывести в итог ? Как можно в отчете получить просто строку вида Сотрудник - КолВоМальчиков - КолВоДевочек ?
---
В (2) уже все сказали. Да, добавить группировку по сотруднику и СУММА() по вычисляемым полям.
---
Да, группировка по сотруднику и суммирование по полям с числами
---
текст запроса в студию
---
Спасибо всем. Вопрос решен.
Всем привет. Есть уф, на ней поле ссылочного типа. На документ. И если в этом поле что то выбирать, то окно открывается модально. В форме, в свойствах формы, в Блокировать окно владельца - независимый. Как изменить, чтобы открывалось не модально? Спасибо!
---
Как изменить, чтобы открывалось не модально?
Своя процедура Выбора и ОбработкаВыбора
СтандартнаяОбработка = ложь;
ф = получитьформу("Документ....");
Ф.открыть();
ну и т.д.
---
Как изменить, чтобы открывалось не модально?
Своя процедура Выбора и ОбработкаВыбора
СтандартнаяОбработка = ложь;
ф = получитьформу("Документ....");
Ф.открыть();
ну и т.д.
---
спасибо. Я думала что можно как то без кода обойтись.
---
В параметрах выбора у реквизита покопайтесь, может там установлен параметр "РежимОткрытия"
Здравствуйте!
Делаю выборку из справочника методом ПолучитьДанныеВыбора()
Получаю список из 10 элементов.
Возник вопрос, почему именно 10? Это где устанавливается?

В дейстивтельности же, метод должен вернуть порядка 40 элементов.
---
Разобрался.
В общем код который отрабатывал не так как мне хотелось (возвращал 10 элементов):

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

Код который отработал правильно (убрал из структуры параметров объявление не используемых):

```1c
    Параметры=Новый Структура("Отбор,ВыборГруппИЭлементов");
    Отбор=Новый Структура();
    Отбор.Вставить("Подразделение",....);
    Отбор.Вставить("ФлагУволен",....);
    Параметры.Отбор=Отбор;
    Параметры.ВыборГруппИЭлементов=ИспользованиеГруппИЭлементов.Элементы;
    СЗСотр=Справочники.Сотрудники.ПолучитьДанныеВыбора(Параметры);
```
---
Возник вопрос, почему именно 10? Это где устанавливается? Выполнение метода приводит к вызову события ОбработкаПолученияДанныхВыбора может в нём?
---
Каким образом получаете список?
---
Я в курсе про этот метод, но ни в модуле объекта, ни в модуле менджера справочника этот метод не задействован. Да и поиск по всей конфе показывает,что этот метод вообще не используется.
---
Справочники.Сотрудники.ПолучитьДанныеВыбора(Параметры)
---
Разобрался.
В общем код который отрабатывал не так как мне хотелось (возвращал 10 элементов):

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

Код который отработал правильно (убрал из структуры параметров объявление не используемых):

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

```1c
    Подразделение=ВнешняяБаза.NewObject("Array");;

    Подразделение.Добавить(ВнешняяБаза.Справочники.ПодразделенияОрганизаций.НайтиПоКоду("000000034"));

    Подразделение.Добавить(ВнешняяБаза.Справочники.ПодразделенияОрганизаций.НайтиПоКоду("000000020"));

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

    Запрос.УстановитьПараметр("Подразделение",Подразделение);
    Запрос.УстановитьПараметр("ТекущаяДата", ТекущаяДата());
```

Вылетает с ошибкой, ругается на параметр Подразделение
---
Так объект "Запрос" надо тоже во внешней базе создавать, а не в текущей:
Запрос=ВнешняяБаза.NewObject("Запрос");
---
Так объект "Запрос" надо тоже во внешней базе создавать, а не в текущей:
Запрос=ВнешняяБаза.NewObject("Запрос");
---
Спасибо огромное! Не заметила, что конструктор "Запрос" создал еще раз и переопределил то, что было написано ранее. "Смотрю в книгу, вижу..." получилось))))
Здравствуйте. Помогите пожалуйста. Знаю, что вопрос элементарный, но не могу понять как вызвать на клиенте процедуру с сервера.
Код:
```1c
    &НаКлиенте
    Процедура ЗаполнитьПолеHTML ()

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

    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Объект.ПолеHTML = ОтчётHTML.ЗаполнитьМакетHTML();
    КонецПроцедуры
```
---
```1c
    &НаКлиенте
    Процедура ПроцедураНаКлиенте()
    ПроцедураНаСервере(<Параметры>);
    КонецПроцедуры

    &НаСервере
    Процедура ПроцедураНаСервере(<Параметры>)
    //Ваш обработчик
    КонецПроцедуры
```
---
```1c
    &НаКлиенте
    Процедура ПроцедураНаКлиенте()
    ПроцедураНаСервере(<Параметры>);
    КонецПроцедуры

    &НаСервере
    Процедура ПроцедураНаСервере(<Параметры>)
    //Ваш обработчик
    КонецПроцедуры
```
---
Спасибо!
Всем хорошего дня.

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

Если же реквизит существует в обеих базах и Вам нужно перенести именно обновленный запрос, формирующий список, то тогда:
1) кликаете по реквизиту в старой базе;
2) находите в свойствах реквизита "Настройка списка", нажимаете на "Открыть";
3) копируете текст этого запроса;
4) аналогичным образом переносите текст запроса в реквизит новой базы.

Примерно так.
---
или вы можете написать свой модуль и при создании формы вызвать процедуру которая подменит текст запроса. Обычно если есть БСП, то такая процедура уже есть и нужно будет свою впихнуть уже в модуль в БСП. Обновление на ура будет проходить!
---
Если у Вас платформа 1С версии 8.3.9-8.3.10 и некая типовая конфигурация с тем же уровнем совместимости, то рекомендую начать переносить все доработки объектов на поддержке в расширение.
Сделать это можно так (на тестовой базе):

1. Выгружаем файл конфигурации.
2. Накатываем текущую конфигурацию поставщика из Конфигурация -> Поддержка -> Настройка Поддержки -> Выбрать конфигурацию поставщика -> Сравнить, Объединить.
3. Создаем к конфигурации новое расширение.
4. Разворачиваем выгруженный ранее файл конфигурации в новой тестовой базе.
5. Переносим доработки из старого файла конфигурации в нашу тестовую базу в созданное ранее расширение (ручками конечно. И это самая сложная часть работы).
6. Тестируем полученный результат.

Когда получится вынести все доработки в расширение, то можно пробовать накатить конфигурацию поставщика на рабочую базу и подключить туда готовую конфигурацию расширение.

После чего головная боль связанная с обновлениями сокращается на порядок.
---
А в чём конкретно сокращение головной боли? Если что-то изменено и в обновлении и в расширении, то всё равно придётся работать так же, как будто доработка непосредственно в конфигурации.
---
А в чем проблема, если даже указать объедение с приоритетов основной то код из новой попадет за комментированный и это в дальнейшем придется ручками править
---
В любом случае в каждом отдельном случае вам придется самостоятельно править и возможно что-то дописывать в коде если структура изменилась или параметры.
---
Начнем с того, что модуль менеджера тут не при чем.
Как перенести реквизит с динамическим списком?
Просто копируете его из старой базы в новую, вот и все.

Если же реквизит существует в обеих базах и Вам нужно перенести именно обновленный запрос, формирующий список, то тогда:
1) кликаете по реквизиту в старой базе;
2) находите в свойствах реквизита "Настройка списка", нажимаете на "Открыть";
3) копируете текст этого запроса;
4) аналогичным образом переносите текст запроса в реквизит новой базы.

Примерно так.
Всем хорошего дня.

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

```1c
    Контрагенты
    ГДЕ Контрагенты.ДоступенВсем = ИСТИНА
```

Но так не работает.
---
На практике всегда работал с RLS через шаблоны, поэтому пришлось заглянуть в руководство разработчика.
Там простейшие RLS на справочник выглядят так:
1) "ГДЕ ДоступенВсем", либо уже
2) "
     Контрагенты
     ИЗ
     Справочник.Контрагенты КАК Контрагенты
     ГДЕ Контрагенты.ДоступенВсем
     "
А у тебя какой-то промежуточный вариант. И ни туда и ни сюда.
---
Работает. Но, очевидно, не так как вы ожидаете.
ЗЫ. К тому же прелесть булевых выражений в том, что их НЕ НАДО сравнивать для проверки их истинности или ложности. Условия и так это делают.
Т.е. достаточно "ГДЕ Контрагенты.ДоступенВсем". Но вашей проблемы это не решит. У вас где-то в консерватории ошибка.
---
Из руководства разработчика:

Запись считается доступной в том случае, если в результате работы условия для одной записи таблицы основного объекта ограничения получена не пустая таблица (т.е. таблица, в которой 1 или более записей)

В данном запросе должны вернуться все записи, у которых реквизит ДоступенВсем будет истиной. Такие ожидания.
А как отрабатывает запрос?
---
Откуда ж я знаю, как отрабатывает твой запрос. И что такое "не работает". По тому кусочку картины что ты дал - проблемы я не вижу.
---
Предположим, это весь запрос в RLS. Должны быть доступны все контрагенты, у которых ДоступенВсем = истина. Сейчас не показывает ни одного контрагента.
---
На практике всегда работал с RLS через шаблоны, поэтому пришлось заглянуть в руководство разработчика.
Там простейшие RLS на справочник выглядят так:
1) "ГДЕ ДоступенВсем", либо уже
2) "
     Контрагенты
     ИЗ
     Справочник.Контрагенты КАК Контрагенты
     ГДЕ Контрагенты.ДоступенВсем
     "
А у тебя какой-то промежуточный вариант. И ни туда и ни сюда.
---
Проблема решена, спасибо.
Всё оказалось гораздо проще - у реквизита ДоступенВсем тип был строка, а не булево.
Спасибо за помощь.
УПП 1.3 В форме журнала документов есть стандартная кнопка с действием отбор и сортировка. Обработчик события данной кнопки соответственно не доступен. Можно как нибудь вмешаться в этот процесс и получать значение отбора?
---
В само событие вмешаться нельзя. Но значение можно получить и установить программно.
Через ДокументСписок.Отбор
---
в ПриСозданииНаСервере
---
Такой функции нет в форме
---
значит ПриОткрытии
---
В само событие вмешаться нельзя. Но значение можно получить и установить программно.
Через ДокументСписок.Отбор
---
Спасибо, получилось
Как можно сделать такую же табличку на форме со списком значений.
---
ВыбратьЭлемент (ChooseItem)
Синтаксис:

ВыбратьЭлемент(<Заголовок>, <Элемент>)
Параметры:

<Заголовок> (необязательный)

Тип: Строка.
Заголовок окна выбора. Если параметр не указан, то используется стандартный заголовок.
Значение по умолчанию: Пустая строка.
<Элемент> (необязательный)

Тип: ЭлементСпискаЗначений.
Элемент, на который следует изначально спозиционировать список значений при интерактивном выборе. Если значением параметра не является элемент списка значений, входящий в данный список, позиционирования не произойдет.
Возвращаемое значение:

Тип: ЭлементСпискаЗначений; Неопределено.
Если пользователь отказался от выбора, возвращает Неопределено.
Описание:

Вызывает окно для интерактивного выбора одного из элементов, входящих в список значений.

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

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

Если для конфигурации свойство РежимИспользованияМодальности установлено в НеИспользовать, следует использовать метод ПоказатьВыборЭлемента.
Пример:

```1c
    ВыбЭлемент = СписокТиповЦен.НайтиПоЗначению(ВыбЗначение);
    ВыбЭлемент = СписокТиповЦен.ВыбратьЭлемент("Выберите тип цен.", ВыбЭлемент);
    Если ВыбЭлемент = Неопределено Тогда
    Сообщить("Не выбран тип цен.");
    Иначе
    ВыбЗначение = ВыбЭлемент.Значение;
    КонецЕсли;
```
---
ВыбратьЭлемент (ChooseItem)
Синтаксис:

ВыбратьЭлемент(<Заголовок>, <Элемент>)
Параметры:

<Заголовок> (необязательный)

Тип: Строка.
Заголовок окна выбора. Если параметр не указан, то используется стандартный заголовок.
Значение по умолчанию: Пустая строка.
<Элемент> (необязательный)

Тип: ЭлементСпискаЗначений.
Элемент, на который следует изначально спозиционировать список значений при интерактивном выборе. Если значением параметра не является элемент списка значений, входящий в данный список, позиционирования не произойдет.
Возвращаемое значение:

Тип: ЭлементСпискаЗначений; Неопределено.
Если пользователь отказался от выбора, возвращает Неопределено.
Описание:

Вызывает окно для интерактивного выбора одного из элементов, входящих в список значений.

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

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

Если для конфигурации свойство РежимИспользованияМодальности установлено в НеИспользовать, следует использовать метод ПоказатьВыборЭлемента.
Пример:

```1c
    ВыбЭлемент = СписокТиповЦен.НайтиПоЗначению(ВыбЗначение);
    ВыбЭлемент = СписокТиповЦен.ВыбратьЭлемент("Выберите тип цен.", ВыбЭлемент);
    Если ВыбЭлемент = Неопределено Тогда
    Сообщить("Не выбран тип цен.");
    Иначе
    ВыбЗначение = ВыбЭлемент.Значение;
    КонецЕсли;
```
---
Большое спасибо, вы мне очень помогли!!
---
Перетаскиваете список значений на форму - и, опа! - все работает. Если кнопочки добавить - две группы. В первой список, во второй кнопки. Первая горизонтальная, вторая вертикальная внутри первой.