arefaste/1C_Forums huggingface dataset:
Здравствуйте форумчане. Возник вопрос по доработке обменов. Из ЗУП в БУХ выгружается доработанный документ "ОтражениеЗарплатыВБухУчете". В нем есть дополнительная табличная часть с колонкой "Начисления", это справочник. Значения этого справочника надо выгружать в БУХ.

Поиск в приемнике идет не по ссылке, а по идентификатору "Кодификатор". Особенность в том, что наименования надо указывать те, которые используются в БУХ в другом справочнике, т.е. мне надо перегрузить начисление и если его нет, то создать новое, а название найти в приемнике.

Я попробовал написать код в обработчике "После загрузки"
Объект.Наименование = Справочники.СтатьиОборотов.НайтиПоРеквизиту("Кодификатор", Объект.Кодификатор);

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

Объект.Наименование = Объект.Ссылка.Наименование.
---
Да это уже вопрос другой, оно для новых не срабатывает.
---
Так "Объект.Кодификатор" заполнен, вообще этот реквизит участвует в обмене ?

Просто без обмена код поиска по этому реквизиту выполняется ?
---
Так "Объект.Кодификатор" заполнен

Заполнен, на тестах, в ЗУП создан элемент справочника с кодификатором, которого нет в БУХ. После обменов, в БУХ появляется новый элемент справочника, но без наименования, обработчик не срабатывает.
---
а в статье оборотов кодификатор указан?
---
Да, конечно

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

```1c
    Процедура ЗаполнитьСчетаУчетаВСтрокеТабличнойЧасти(Объект, СтрокаТабличнойЧасти, ИмяТабличнойЧасти,
```

или

```1c
    НовыйДокумент.ДополнительныеСвойства.Вставить("ЗаполнитьСчетаУчетаПередЗаписью", Истина);
    СчетаУчетаВДокументах.ЗаполнитьПередЗаписью(НовыйДокумент, РежимЗаписиДокумента.Запись);
```
---
```1c
    СчетаУчетаВДокументах.ЗаполнитьСчетаУчетаВСтрокеТабличнойЧасти(
    Объект,
    СтрокаТабличнойЧасти,
    ИмяТабличнойЧасти);
```
Добрый день, коллеги. Нужна помощь, по взаимодействию с Честным знаком.
В Станции управления заказами (СУЗ) имеется возможность загрузки файла в xml.
Можете подсказать как правильно сформировать xml документ, либо ссылки на инструкции?

В разделе "Помощь" есть пример готового файла, но там не описывается процесс заполнения разделов (Тип продукта, тип документа, вид молочной продукции и тд.)

```1c
    <milk>
    <productGroupe>milk</productGroupe>
    <contactPerson>string</contactPerson>
    <releaseMethodType>PRODUCTION</releaseMethodType>
    <createMethodType>SELF_MADE</createMethodType> /// SELF_MADE ?
    <productionOrderId>string</productionOrderId>
    <products>
    <product>
    <gtin>04640043460186</gtin>
    <quantity>1</quantity> /// quantity ?
    <serialNumberType>SELF_MADE</serialNumberType>
    <serialNumbers>
    <serialNumber>26345</serialNumber> ///serialNumber ?
    </serialNumbers>
    <stickerId></stickerId> /// stickerId ?
    <cisType>UNIT</cisType> ///cisType ?
    <templateId>20</templateId> /// templateId ?
```

Только начинаем знакомство с Честным знаком, сильно не критиковать )
---
См. ru_API_OMS-PRODUCTION.pdf.
Лучше пишите на support@crpt.ru.
---
См. ru_API_OMS-PRODUCTION.pdf.
Лучше пишите на support@crpt.ru.
---
Смотрите API СУЗа
там ест привет и описание типов. вполне хорошо все описано

https://xn--80ajghhoc2aj1c8b.xn--p1ai/upload/iblock/07f/ru_API_OMS-CLOUD.pdf
что нужно для того что бы "количество" в запросе захватывало 2 месяца?
---
нет, все я понял, нужно сделать в запросе на дату документа "ПоступлениеТовара", добавить функцию периода
---
ДобавитьКДате(ДатаОтчета,Месяц,-2)
---
Сформировать отчет за 2 месяца
---
там имеется ввиду, что выбрана определенная дата и к этой дате на количество брало на выбранный месяц и на следующий, только на количество
---
Тогда получить данные отдельной временной таблицей оборотами за 2 месяца, а потом присоединить её к основной
---
```1c
    ВЫБРАТЬ
    ПланыОбъемовПоПродажамТовары.Количество КАК КоличествоПлан,
    ПланыОбъемовПоПродажамТовары.Товар КАК Товар,
    НАЧАЛОПЕРИОДА(ЕСТЬNULL(ПланыОбъемовПоПродажамТовары.ПериодС, ПоступлениеТовараТовары.Ссылка.Дата), МЕСЯЦ) КАК Период,
    ПоступлениеТовараТовары.Количество КАК КоличествоФакт
    ИЗ
    Документ.ПланыОбъемовПоПродажам.Товары КАК ПланыОбъемовПоПродажамТовары
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТовара.Товары КАК ПоступлениеТовараТовары
    ПО ПланыОбъемовПоПродажамТовары.Товар = ПоступлениеТовараТовары.Товар
    И (ПоступлениеТовараТовары.Ссылка.Проведен)
    И ПланыОбъемовПоПродажамТовары.ПериодС = ПоступлениеТовараТовары.Ссылка.Дата

    СГРУППИРОВАТЬ ПО
    ПланыОбъемовПоПродажамТовары.Количество,
    ПланыОбъемовПоПродажамТовары.Товар,
    НАЧАЛОПЕРИОДА(ЕСТЬNULL(ПланыОбъемовПоПродажамТовары.ПериодС, ПоступлениеТовараТовары.Ссылка.Дата), МЕСЯЦ),
    ПоступлениеТовараТовары.Количество
```
---
дело в том, что нет там регистра
---
Лучше построить запрос по движениям документов, тогда все получится.
---
нет, все я понял, нужно сделать в запросе на дату документа "ПоступлениеТовара", добавить функцию периода
---
Можно так:

```1c
    ВЫБРАТЬ
    ПланыОбъемовПоПродажамТовары.Количество КАК КоличествоПлан,
    ПланыОбъемовПоПродажамТовары.Товар КАК Товар,
    //НАЧАЛОПЕРИОДА(ЕСТЬNULL(ПланыОбъемовПоПродажамТовары.ПериодС, ПоступлениеТовараТовары.Ссылка.Дата), МЕСЯЦ) КАК //Период,
    ПоступлениеТовара.Дата КАК Период,
    ПоступлениеТовараТовары.Количество КАК КоличествоФакт
    ИЗ
    Документ.ПланыОбъемовПоПродажам.Товары КАК ПланыОбъемовПоПродажамТовары
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТовара.Товары КАК ПоступлениеТовараТовары
    ПО ПланыОбъемовПоПродажамТовары.Товар = ПоступлениеТовараТовары.Товар
    //И (ПоступлениеТовараТовары.Ссылка.Проведен)
    //И ПланыОбъемовПоПродажамТовары.ПериодС = ПоступлениеТовараТовары.Ссылка.Дата

    //+
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТовара КАК ПоступлениеТовара
    ПО ПоступлениеТовара.Ссылка = ПоступлениеТовараТовары.Ссылка

    ГДЕ ПоступлениеТовара.Проведен И ПоступлениеТовара.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания

    //-

    СГРУППИРОВАТЬ ПО
    ПланыОбъемовПоПродажамТовары.Количество,
    ПланыОбъемовПоПродажамТовары.Товар,
    //+
    ПоступлениеТовара.Дата,
    //-
    //НАЧАЛОПЕРИОДА(ЕСТЬNULL(ПланыОбъемовПоПродажамТовары.ПериодС, ПоступлениеТовараТовары.Ссылка.Дата), МЕСЯЦ),
    ПоступлениеТовараТовары.Количество
```
---
спасибо, но это не совсем так, но задачка была уже решена)
Есть ли возможность выбрать топ 20/30/40 по продажам, но в разрезе группы номенклатуры.
Как именно получить выборку по типу "первые 50 " внутри группы?
---
Есть решение. Красивое

```1c
    ВЫБРАТЬ
    ВсеПродажиССекцией.Секция,
    ВсеПродажиССекцией.Номенклатура,
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВсеПродажиССекцией1.Номенклатура) КАК Счетчик
    ПОМЕСТИТЬ ТаблицаСчетчика
    ИЗ
    ВсеПродажиССекцией КАК ВсеПродажиССекцией
    ЛЕВОЕ СОЕДИНЕНИЕ ВсеПродажиССекцией КАК ВсеПродажиССекцией1
    ПО ВсеПродажиССекцией.Секция = ВсеПродажиССекцией1.Секция
    И ВсеПродажиССекцией.Стоимость < ВсеПродажиССекцией1.Стоимость

    СГРУППИРОВАТЬ ПО
    ВсеПродажиССекцией.Секция,
    ВсеПродажиССекцией.Номенклатура
```

соединение самой таблицы к самой себе. И тут же считаем сколько позиций меньше нашей. Потом отбираем ult счетчик <20 (или любое наше число) и пожалуйста. Такой отбор можно делать не только по номенклатуре, это основной принцип.
---
Запросом достаточно проблематично или ресурсоемко.
Можно сделать подзапрос по каждой группе и выбирать первые 50 записей.
Или выбрать все и обработать результат, удалив лишнее программно.
---
А подзапросы можно формировать динамически.
---
Есть решение. Красивое

```1c
    ВЫБРАТЬ
    ВсеПродажиССекцией.Секция,
    ВсеПродажиССекцией.Номенклатура,
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВсеПродажиССекцией1.Номенклатура) КАК Счетчик
    ПОМЕСТИТЬ ТаблицаСчетчика
    ИЗ
    ВсеПродажиССекцией КАК ВсеПродажиССекцией
    ЛЕВОЕ СОЕДИНЕНИЕ ВсеПродажиССекцией КАК ВсеПродажиССекцией1
    ПО ВсеПродажиССекцией.Секция = ВсеПродажиССекцией1.Секция
    И ВсеПродажиССекцией.Стоимость < ВсеПродажиССекцией1.Стоимость

    СГРУППИРОВАТЬ ПО
    ВсеПродажиССекцией.Секция,
    ВсеПродажиССекцией.Номенклатура
```

соединение самой таблицы к самой себе. И тут же считаем сколько позиций меньше нашей. Потом отбираем ult счетчик <20 (или любое наше число) и пожалуйста. Такой отбор можно делать не только по номенклатуре, это основной принцип.
Доброго времени суток.
Может кто подскажет, как вытащить правила обмена через универсальный формат (обмен с другой программой). Может 1Ска хранит их где-нибудь во временных файлах? Раньше можно было Сохранить как... правила обмена. Сейчас же таким образом можно сохранить только правила регистрации. Ткните носом, пожалуйста...
ERP 2.4.13.57
---
Здесь все подробно описано https://infostart.ru/1c/articles/695523/
---
Здесь все подробно описано https://infostart.ru/1c/articles/695523/
---
Благодарю. Пойду изучать. Может и правда не так черт страшен...
---
Нет никаких правил обмена. Есть стандарт обмена EnterpriseData. Описан в пакете XDTO.
---
Процесс обмена данными осуществляется за счет передачи информации между программами в виде текстовых сообщений (XML-файлов, содержащих данные в формате Enterprise Data) через общий каталог обмена, адрес которого задается на этапе настройки новой синхронизации данных.
Доброго времени суток, друзья!
Стоит задача написать выгрузку накладных поставщика из 1с7.7 ТиС 9.2 в формате XML c кодировкой UTF-8,
Сделал, НО с кодировкой Windows-1251, как задать требуемую кодировку в момент создания файла?
---
А разве при создании не достаточно указать UTF-8?

```1c
    Анализатор=СоздатьОбъект("AddIn.XMLParser");
    Корень=Анализатор.СоздатьДокумент();
    Корень.Кодировка ="UTF-8";
```
---
Если мне не изменяет склероз, то просто "задать кодировку" не получится: 7.7 не работает с UTF-8.

Но можно программно перекодировать строки из Windows-1251 в UTF-8 перед записью в файл, код взять, например, отсюда: https://infostart.ru/public/18816/

Проверено на личном опыте, работает.
---
Можно пробовать через MSXML
Ссылка на пример
---
А разве при создании не достаточно указать UTF-8?

```1c
    Анализатор=СоздатьОбъект("AddIn.XMLParser");
    Корень=Анализатор.СоздатьДокумент();
    Корень.Кодировка ="UTF-8";
```
---
Точно, сработало )
---
```1c
    Функция ПерекодироватьСтроку_Из_Win_в_UTF_8(_Строка) Экспорт
    НоваяСтрока = ";
    Для i=1 по СтрДлина(_Строка) Цикл
    Символ = Сред(_Строка,i,1);
    КодСимвола = КодСимв(Символ);
    Если (КодСимвола > 191) и (КодСимвола < 224) Тогда // А - Я
    НоваяСтрока = НоваяСтрока + Симв(208)+Симв(КодСимвола-48);
    ИначеЕсли (КодСимвола > 223) и (КодСимвола < 240) Тогда // а - п
    НоваяСтрока = НоваяСтрока + Симв(208)+Симв(КодСимвола-48);
    ИначеЕсли (КодСимвола > 239) и (КодСимвола < 256) Тогда // р - я
    НоваяСтрока = НоваяСтрока + Симв(209)+Симв(КодСимвола-112);
    ИначеЕсли (Символ = "ё") или (Символ = "Ё") Тогда
    НоваяСтрока = НоваяСтрока + Симв(208)+Симв(КодСимвола-39);
    ИначеЕсли (Символ = "№") Тогда
    НоваяСтрока = НоваяСтрока + Симв(226)+Симв(132)+Симв(150);

    Иначе
    НоваяСтрока = НоваяСтрока + Символ;
    КонецЕсли;
    КонецЦикла;
    Возврат НоваяСтрока;
    КонецФункции
```
Добрый день! 1С 8.3 2.2 Оптика рарус

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

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

 ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
 Обр = РеквизитФормыВЗначение("Объект");
 Обр.ДополнительныеРеквизиты.Очистить();
 Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
  Строка = Обр.ДополнительныеРеквизиты.Добавить();
  Строка.Использовать = Истина;
  Строка.Свойство = ВыборкаДетальныеЗаписи.Свойство;
  ОписаниеТипа = Новый ОписаниеТипов(ВыборкаДетальныеЗаписи.Свойство.ТипЗначения); // вместо СправочникСсылка.Контрагенты ваше значение
  Строка.Значение = ОписаниеТипа.ПривестиЗначение(); //вместо ПолучательПСТретьеЛицо ваш реквизит
 КонецЦикла;
 ЗначениеВРеквизитФормы(Обр,"Объект");

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

А как запретить выбор - иного типа значения?
---
Заполнить СвязьПоТипу и СвязиПараметровВыбора.
---
Заполнить СвязьПоТипу и СвязиПараметровВыбора.
Пытаюсь читать документацию, полностью запутался.
У меня стартует вложенный бизнес процесс, причем предпологаю стартовать по несколько вложенных за раз, в зависимости от настрое.
Сейчас у меня в тестовой разработке стартует один вложенный, при этом создается одна задача, никак не связанная с процессом.
Самое главное, - что срабатывает по завершении вложенного процесса?
Я так понимаю я должен как то связать эти задачи с процессом по реквизиту ВедущаяЗадача, тогда при выполнении вложенного процесса будет срабатывать процедура ПриВыполнении у точки маршрута, а на фходе там как раз Ведущая задача вложенного БП?
я так понимаю?
---
Лучше еще раз почитать:
https://its.1c.ru/db/metod8dev/content/2346/hdoc
https://pro1c.org.ua/index.php?showtopic=107
---
Лучше еще раз почитать:
https://its.1c.ru/db/metod8dev/content/2346/hdoc
https://pro1c.org.ua/index.php?showtopic=107
Добрый день.
Есть отчёт на скд. Выбран регистр бухгалтерии (Переодичность-"квартал"). В параметрах подтянуты типовые "Начало периода" и "Конец периода".
Мне необходимо, чтобы на форме отчёта было только одно поле "Год", где пользователь выбирал год и атоматически в Нач периода подставлялось - НачалоГода(Год), а в кон периода - КонецГода(Год)

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

upd: получилось, спасибо.
не тому поле формат задал
Единственное,если выбрать например середину года 2020, то отобразится 2020, но по факту начало периода будет середина, а мне необходимо начало года..
---
Тогда остается только добавить параметр с типом "Число" и от него выставлять значениt начала периода, ограничив так же доступность. Если совсем не хочется программировать, то лучше всего запретить незаполненное значение параметров. СКД сама откажет в формировании отчета, когда параметр не задан.

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

Есть элементы созданные на УФ программно, их командные панели наполняются автоматически.
Мне нужно самостоятельно их наполнить, это я знаю как.
Но вот галочку снять программно "Автозаполнение" не могу. Как сделать?

РАСШИРЮ ВОПРОС - БОЛЬШЕ ВСЕГО ИНТЕРЕСУЕТ ОТКЛЮЧЕНИЕ АВТОЗАПОЛНЕНИЕ
У КОНТЕКСТНОГО МЕНЮ...

Как костылями справится с командной панелью разобрался...
---
Кому будет интересно, программно повлиять можно на командную панель.
1. Создать группу удобнее даже просто руками в конфигураторе, допустим "ГруппаМОЯНОВАЯ".
Программно создать туда новую командную панель:

```1c
    КоманднаяПанельНовая = Элементы.Добавить("КоманднаяПанельМОЯ", Тип("ГруппаФормы"), Элементы.ГруппаМОЯНОВАЯ);
    КоманднаяПанельНовая .Вид = ВидГруппыФормы.КоманднаяПанель;
```

2. Дальше загнать нужные в неё кнопки программно.
3. Конечный этап отключить у элемента стандартную командную панель:

```1c
    ТаблицаФормы.ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиЭлементаФормы.Нет;
```

Вот такие костыли)))

НО МНЕ НУЖНО ещё по хорошему и контекстное по своему заполнить... тут вообще засада(((
---
Создают "Обычную группу " и в нее программно добавляют команды, а текущую панель в свойстве формы "состав команд" очищают.
---
Сообщение было скрыто модератором.
---
Кому будет интересно, программно повлиять можно на командную панель.
1. Создать группу удобнее даже просто руками в конфигураторе, допустим "ГруппаМОЯНОВАЯ".
Программно создать туда новую командную панель:

```1c
    КоманднаяПанельНовая = Элементы.Добавить("КоманднаяПанельМОЯ", Тип("ГруппаФормы"), Элементы.ГруппаМОЯНОВАЯ);
    КоманднаяПанельНовая .Вид = ВидГруппыФормы.КоманднаяПанель;
```

2. Дальше загнать нужные в неё кнопки программно.
3. Конечный этап отключить у элемента стандартную командную панель:

```1c
    ТаблицаФормы.ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиЭлементаФормы.Нет;
```

Вот такие костыли)))

НО МНЕ НУЖНО ещё по хорошему и контекстное по своему заполнить... тут вообще засада(((
---
, можно скрыть стандартные команды (ну и соответственно отказы на события по горячим клавишам поставить) как контекстного меню, так и у стандартной командной панели.

Делается примерно так:

Элементы.<ИмяТаблицыФормы>КонтекстноеМенюДобавить.Видимость = Ложь; - скрывает команду добавить. И прописать это в событии ПриАктивизацииСтроки.

Для командной панели надо это прописывать в событии ПриСозданииНаСервере и следующее:
Элементы.<ИмяТаблицыФормы>Добавить.Видимость = Ложь; - скрывают команду добавить таблицы формы.
---
Единственная поправка, что это нужно делать на клиенте. Поэтому для командной панели отображение кнопок стандартных команд надо скрывать в процедуре ПриОткрытии.
---
Создаем новую группу "КомманднаяПанель", указываем источник комманд - "форма". Дальше галочка Видимость в помощь.