arefaste/1C_Forums huggingface dataset:
Есть переменная с типом ДанныеФормыКоллекция. Она содержит данные для вывода номенклатуры в дерево значений.
Есть Массив с номенклатурой.
Необходимо отсортировать ДанныеФормыКоллекция в порядке, как в массиве.

Что сделал:
1) Добавил колонку "ИндексСортировки";
2) Обошел циклом ДанныеФормыКоллекция и заполнил "ИндексСортировки" порядковым номером номенклатуры в массиве;

На этом этапе отладчик показывает, что всё хорошо.

3) СписокДанныеФормыКоллекция.Сортировать("ИндексСортировки", "Возр");

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

```1c
    Если СтрокаТЗ.ЭтоГруппа Тогда
    ОбъектНоменклатура = Справочники.Номенклатура.СоздатьГруппу();
    Иначе
    ОбъектНоменклатура = Справочники.Номенклатура.СоздатьЭлемент();
    КонецЕсли;
    Если СсылкаРодитель <> Справочники.Номенклатура.ПустаяСылка() Тогда
    ОбъектНоменклатура.Родитель = СсылкаРодитель;
    КонецЕсли;
    ОбъектНоменклатура.УстановитьСсылкуНового(СсылкаНоменклатура);
    ЗаполнитьЗначенияСвойств(ОбъектНоменклатура, СтрокаТЗ, , "Родитель");
    ОбъектНоменклатура.Записать();
```

Если хотите, можно добавить ещё проверку, что СсылкаРодитель — это группа…
---
Неограниченная иерархия делается через рекурсию.
---
Тот-же код, только не смотря на уровни и без рекурсии:

```1c
    Если СтрокаТЗ.ЭтоГруппа Тогда
    ОбъектНоменклатура = Справочники.Номенклатура.СоздатьГруппу();
    Иначе
    ОбъектНоменклатура = Справочники.Номенклатура.СоздатьЭлемент();
    КонецЕсли;
    Если СсылкаРодитель <> Справочники.Номенклатура.ПустаяСылка() Тогда
    ОбъектНоменклатура.Родитель = СсылкаРодитель;
    КонецЕсли;
    ОбъектНоменклатура.УстановитьСсылкуНового(СсылкаНоменклатура);
    ЗаполнитьЗначенияСвойств(ОбъектНоменклатура, СтрокаТЗ, , "Родитель");
    ОбъектНоменклатура.Записать();
```

Если хотите, можно добавить ещё проверку, что СсылкаРодитель — это группа…
---
Спасибо Большое!
В регламентном задании прописал добавление расхода и прихода в регистр накоплений. Вот код:

```1c
    Если строка.Количество > ВыборкаДетальныеЗаписи.Количество Тогда
    Запись = НаборЗаписей.ДобавитьПриход();
    Запись.ВидДвижения = ВидДвиженияНакопления.Приход;
    Запись.Номенклатура = строка.Номенклатура;
    Запись.Характеристика = строка.Характеристика;
    Запись.Количество = строка.Количество;
    Запись.Цена = строка.Цена;
    Запись.Сумма = строка.Сумма;
    Запись.ЕдИз = строка.Номенклатура.ЕдиницаИзмерения;
    Запись.Регистратор = СсылкаДокумента;
    КонецЕсли;
    Если строка.Количество < ВыборкаДетальныеЗаписи.Количество Тогда
    Запись = НаборЗаписей.ДобавитьРасход();
    Запись.Номенклатура = строка.Номенклатура;
    Запись.Характеристика = строка.Характеристика;
    Запись.Количество = строка.Количество;
    Запись.Цена = строка.Цена;
    Запись.Сумма = строка.Сумма;
    Запись.ЕдИз = строка.Номенклатура.ЕдиницаИзмерения;
    Запись.Регистратор = СсылкаДокумента;
    КонецЕсли;
```

Но выводит ошибку:

Метод объекта не обнаружен (ДобавитьПриход)
{ОбщийМодуль.АнализПродажПоставщиков.Модуль(58)}:Запись = НаборЗаписей.ДобавитьПриход();

УТ11, 1С 8.3.22
---
Добавить приход и добавить расход есть в движениях. В наборе записей надо добавить и указать вид движения.
---
Вместо ДобавитьПриход()/ДобавитьРасход() используйте просто Добавить()
---
Добавить приход и добавить расход есть в движениях. В наборе записей надо добавить и указать вид движения.
---
Да, оказывается не тот вид регистра стоял. Теперь появился реквизит ВидДвижения :D
---
ВидДвиженияНакопления.Приход или Расход - это обычно у регистров с типом остатки. У оборотных регистров данного свойства нет.
Понять бы до конца, что вы и откуда пишите, но явно не из документа.. Может нужно СоздатьНаборЗаписей():
Доброй субботы, коллеги!

Стоит передо мной задача такого порядка. Необходимо из документа получить значения координат X и Y с тем, чтобы в отчёте имелась активная ссылка на Яндекс.карты. Координаты получаю, ссылку собираю, это просто...

А вот как сделать так, чтобы заполненная ячейка стала кликабельной и по клику открывала браузер и вела именно на сайт Яндекс.карт? Подскажите пожалуйста.
---
по клику1)Сформировать ссылку согласно https://yandex.ru/dev/yandex-apps-launch/maps/doc/concepts/yandexmaps-web.html
2) Положить табличный документ отчета на форму, описать обработчик "Выбор" для поля формы.
3) Вызвать какой нибудь НачатьЗапускПриложения со сформированой ссылкой, чтобы открылся браузер по умолчанию..
---
После некоторых размышлений - в последнем пункте проще использовать ПерейтиПоНавигационнойСсылке, оно и в вебклиенте работать будет.
---
по клику1)Сформировать ссылку согласно https://yandex.ru/dev/yandex-apps-launch/maps/doc/concepts/yandexmaps-web.html
2) Положить табличный документ отчета на форму, описать обработчик "Выбор" для поля формы.
3) Вызвать какой нибудь НачатьЗапускПриложения со сформированой ссылкой, чтобы открылся браузер по умолчанию..
---
Спасибо! Исчерпывающе. Пока задача отменилась, но обязательно воспользуюсь если она возобновится.
---
После некоторых размышлений - в последнем пункте проще использовать ПерейтиПоНавигационнойСсылке, оно и в вебклиенте работать будет.
---
Ещё раз благодарю!
---
А есть ли возможность, чтобы при наведении курсора на ячейку со ссылкой, он менялся как когда мы его наводим на ячейку с заполненным параметром расшифровки? Проще говоря, чтобы лупа с крестиком появлялась.
---
он менялся как когда мы его наводим на ячейку с заполненным параметром расшифровкиНу и положи свою открываемую ссылку при формировании в параметр расшифровки, доставай при клике.
---
Или я не понимаю, или... Ведь тогда платформа открывает эту ссылку как предупреждение с кнопкой ОК, а мне это не нужно. Напомню, речь идёт о ссылке на сайт.
---
ИлиВ аттаче.
---
Помогло, благодарю. Правда не совсем то...
А нельзя такое провернуть на стадии ДО вывода областей, т.е. в момент заполнения параметров на макете?
---
Сообщение было скрыто модератором.
Всем привет!
В типовой ЗУП3 КОРП нет ни одной роли (кроме полных прав, разумеется) на редактирование регистра сведений "ИсторияИспользованияШтатногоРасписания".
Полагаю где-то в коде что-то накручено, но не могу найти.
Кто сталкивался, подскажите, пожалуйста.
Зарплата и управление персоналом КОРП, редакция 3.1 (3.1.28.64)
---
```1c
    ИсторияИспользованияШтатногоРасписания.МодульМенеджера.ПроверитьВозможностьВнесенияИзменений(...)
    ....
    УстановитьПривилегированныйРежим(Истина);
```
---
ДобавлениеИзменениеНачисленийШтатногоРасписания
ДобавлениеИзменениеШтатногоРасписания
---
```1c
    ИсторияИспользованияШтатногоРасписания.МодульМенеджера.ПроверитьВозможностьВнесенияИзменений(...)
    ....
    УстановитьПривилегированныйРежим(Истина);
```
Добрый день коллеги. Подскажите пожалуйста где можно почитать или покажите как сделать)

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

Пример:

Валенки - Это группа
   Валенки с узором - Это группа
     Валенки с узором хохлома - Номенклатура (тут нужно вывести только "Наименование полное")

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

ВычислитьВыражение("Сумма(ВычислитьВыражениеСГруппировкойМассив("ЕстьNull
(КоличествоКлиентов,0)","Партнер"))", "ДатаНачалаРасчета", , "Текущая", "Текущая")
---
как-то так:

```1c
    ВычислитьВыражение("Сумма(ВычислитьВыражениеСГруппировкойМассив("ЕстьNull
    (КоличествоКлиентов,0)","Партнер"))", "ДатаНачалаРасчета", , "Текущая", "Текущая")
```
---
проблема в кавычках.
"Сумма(ВычислитьВыражениеСГруппировкойМассив("
Вот на это ругается.
Нужно экранировать вложенные кавычки.
---
Можно пример, плиз.
---
как-то так:

```1c
    ВычислитьВыражение("Сумма(ВычислитьВыражениеСГруппировкойМассив("ЕстьNull
    (КоличествоКлиентов,0)","Партнер"))", "ДатаНачалаРасчета", , "Текущая", "Текущая")
```
---
ВычислитьВыражение("Сумма(ВычислитьВыражениеСГруппировкойМассив(""ЕстьNull
(КоличествоКлиентов,0)"",""Партнер""))", "ДатаНачалаРасчета", , "Текущая", "Текущая")

Спасибо тебе, добрый человек)))
---
ВычислитьВыражение(Сумма(ВычислитьВыражениеСГруппировкойМассив(ЕстьNull
(КоличествоКлиентов,0),"Партнер")), "ДатаНачалаРасчета", , "Текущая", "Текущая")
---
Синтаксическая ошибка
День добрый.
Есть штрих-код (EAN13), напр. - 3500000065742.
При печати этикетки - картинка штрих-кода выводится отлично.

Стоит задача - изменить первые две цифры из штрих-кода и распечатать.
Меняем первую: 3500000065742 -> 4500000065742
Картинка Штрих-кода не печатается, выводится Invalid barcode.

Внешняя компонента не может сгенерировать картинку.

Подскажите пожалуйста, я правильно понимаю, что нельзя просто заменить цифру(ы) в штрих-коде? Что нужно генерировать новый штрих-код? Возможно компонента проверяет "контрольный символ" - и если не соответствует, то валится в ошибку?
---
нужно изменить 13 символ контрольный

```1c
    ШтрихКод="401911430593";

    Тип=13;

    Четн = 0;
    Нечетн = 0;

    КоличествоИтераций = ?(Тип = 13, 6, 4);

    Для Индекс = 1 По КоличествоИтераций Цикл
    Если (Тип = 8) и (Индекс = КоличествоИтераций) Тогда
    Иначе
    Четн = Четн + Сред(ШтрихКод, 2 * Индекс, 1);
    КонецЕсли;
    Нечетн = Нечетн + Сред(ШтрихКод, 2 * Индекс - 1, 1);
    КонецЦикла;

    Если Тип = 13 Тогда
    Четн = Четн * 3;
    Иначе
    Нечетн = Нечетн * 3;
    КонецЕсли;

    КонтЦифра = 10 - (Четн + Нечетн) % 10;

    Сообщить(КонтЦифра);
```
---
нужно изменить 13 символ контрольный

```1c
    ШтрихКод="401911430593";

    Тип=13;

    Четн = 0;
    Нечетн = 0;

    КоличествоИтераций = ?(Тип = 13, 6, 4);

    Для Индекс = 1 По КоличествоИтераций Цикл
    Если (Тип = 8) и (Индекс = КоличествоИтераций) Тогда
    Иначе
    Четн = Четн + Сред(ШтрихКод, 2 * Индекс, 1);
    КонецЕсли;
    Нечетн = Нечетн + Сред(ШтрихКод, 2 * Индекс - 1, 1);
    КонецЦикла;

    Если Тип = 13 Тогда
    Четн = Четн * 3;
    Иначе
    Нечетн = Нечетн * 3;
    КонецЕсли;

    КонтЦифра = 10 - (Четн + Нечетн) % 10;

    Сообщить(КонтЦифра);
```
---
Спасибо большое, получилось!
---
Спасибо
Добрый день, подскажите как можно сменить цвет текста заголовка у группы данная конструкция
```1c
    ЭтаФорма.Элементы.Группа70.ЦветТекстаЗаголовка = Новый Цвет(0, 255, 0);
```
 почему то не работает ?
---
если только картинку подставлять, вместо текста.
---
Какая группа? Если Обычная и заголовок отображается, то цвет должен поменяться.
Если это Страница или группа колонок, то цвет не будет меняться.
---
Страница, для неё что то можно придумать ?
---
нет. Она зависима от Страницы и цвет не меняет.
---
если только картинку подставлять, вместо текста.
---
Элементы.Группа70.ЦветТекстаЗаголовка = WebЦвета.КрасноФиолетовый;
---
WebЦвета.КрасноФиолетовый; так тоже не работает.
---
не может быть, или ты не ту группу смотришь, или не в той проц это описал и она не попадает туда, ну и 3 вариант, после того как это работает, у тебя в другом месте перекрашивает, ну или УО стоит ) проверь все 4 варианта который написал!
---
Проверил вот этим
```1c
    ЭтаФорма.Элементы.Группа70.ЦветФона = Новый Цвет(0, 255, 0);
```
 цвет фона меняет, а мне нужен заголовок. Кстати и
```1c
    WebЦвета.КрасноФиолетовый
```
 так же фон меняет.
---
Добрый день.
Может кому и пригодится, если решение еще не нашли.
В конфигурации должен быть режим совместимости >=8.3.20
( или отключен совсем ).
Всем привет. Я тут новичок, как собственно и в программировании. Помогите пожалуйста разобраться, что не так я делаю, чего я не знаю.
Есть внешняя обработка с двумя реквизитами. На форме они являются полем ввода с кнопкой выбора для выбора файла.
Хочу, чтобы при выборе файла в "Путь к папке записи", автоматически заполнялся "Путь к папке чтения" тем же адресом.
Но у меня не срабатывает событие ПриИзменении. Скрины прилагаю.
---
"ПриИзменении" в данном случае - при непосредственном вводе данных в поле ввода.
Т.к. вы данные вводите с помощью обработчика "ПриНачалеВыбора" то будте добры написать присвоение значения в нем же.
---
"ПриИзменении" в данном случае - при непосредственном вводе данных в поле ввода.
Т.к. вы данные вводите с помощью обработчика "ПриНачалеВыбора" то будте добры написать присвоение значения в нем же.
---
Все так просто, а я прицепилась к этому ПриИзменении. Спасибо вам за помощь, вы помогли решить мне мой вопрос :)
Добрый день. Подскажите, пожалуйста, где на обычных формах можно посмотреть строку подключения ко внешнему источнику данных? Функционала как на уф найти не смог. ЗЫ
```1c
    ПараметрыСоединения = ВнешниеИсточникиДанных.ИсточникДанных.ПолучитьОбщиеПараметрыСоединения();
```
 не предлагать) Спасибо
---
Никак
---
Выгрузить форму

```1c
    КопироватьФайл("v8res://mngbase/StandardExternalDataSourcesManagement.epf","d:\ВнешняяОбработка.epf");
```

И внедрить обработку в состав конфигурации
---
Там еще как минимум есть:
ПолучитьПараметрыСоединенияПользователя
ПолучитьПараметрыСоединенияСеанса
---
но это ведь все программно, а из режима предприятия никак не посмотреть?
---
Никак
---
спасибо
---
Выгрузить форму

```1c
    КопироватьФайл("v8res://mngbase/StandardExternalDataSourcesManagement.epf","d:\ВнешняяОбработка.epf");
```

И внедрить обработку в состав конфигурации
---
спасибо
Всем привет.

Готовлюсь к эксперту. пытаюсь воспроизвести эскалацию на СУБД. Но она никак не воспроизводится. Подскажите, что не так?

Эскалация на 1с при этом воспроизводится нормально.

Делаю запись набора на 5000 записей (и больше), в трассировке никаких событий не возникает, да и если попытаться из другого сеанса провести документ, то все прекрасно проводится.
---
Спасибо большое за наводку.

Оказывается в новом SQL эскалация отключена на уровне таблиц. Например в 2012 она включена. Включить можно скриптом
USE [TrProf1] ALT ER TABLE _AccumRgT19 SET (LOCK_ESCALATION = TABLE)

Спасибо. Вопрос закрыт.
---
Флаги трассировки 1211, 1224 выключены.
---
http://www.gilev.ru/escalation/ - эскалация блокировок может начинаться при записи наборов строк по 20000 -20010 записей или более!

Кроме того, не поленитесь посмотреть, что у вас на данной таблице вообще разрешена эскалация до таблицы.
Т.е. смотрим в sys.tables на колонки lock_escalation_desc и lock_escalation для вашей таблицы регистра.

Кроме того, если у 1С есть собственная эскалация уже при 5000, то далеко не факт, что она "пойдет в СУБД", т.е. смотрите в профайлере, что у вас за запрос генерирует 1С и с какими хинтами.
---
Спасибо большое за наводку.

Оказывается в новом SQL эскалация отключена на уровне таблиц. Например в 2012 она включена. Включить можно скриптом
USE [TrProf1] ALT ER TABLE _AccumRgT19 SET (LOCK_ESCALATION = TABLE)

Спасибо. Вопрос закрыт.
подскажите пожалуйста, мне нужно во время создания формы просчитывать сколько элементов в справочнике и исходя из количества элементов сделать такое количество кнопок на форме, те если элементов справочника 10 то и кнопок должно создаться 10, и на каждой кнопке вывести ее номер. Если что при нажатии на кнопку должна быть ссылка на соответствующий элемент справочника. Знаю что надо делать цикл при создании на сервере и команду, но что то не догоняю как. помогите пожалуйста. Пример того что я хочу в 1с на фото
---
Я использую вот эту статью постоянно. Особенность есть в ней одна - один обработчик на все кнопки - очень удобно! https://infostart.ru/1c/articles/1118319/#_Toc18589864
---
вывести ее номер Что за зверь?
---
у меня есть запрос который берет из справочника элементы и сохраняет их в списокЗначений, и выводит первый элемент на форму в поле ввода с видом надпись. при нажатии на кнопку переходит к след элементу. в коде тут номерВопроса это индекс + 1
---
Не увидел ничего про кнопки. Не увидел ничего про Представление списка значений.
---
боже в чем проблема не отвечать на форум если не знаете как помочь.
---
Помочь можно тем, кто нормально формулирует проблему.
Боже, в чём проблема нормально сформулировать проблему, и нормально использовать знаки пунктуации?
Боже, в чём проблема хотя бы показать свой код?
---
<3
---
в чем проблема не отвечать на форум если не знаете как помочь.
https://infostart.ru/about/rules/
Пункт 7.8:
Infostart.ru не гарантирует, что: сервисы будут соответствовать Вашим требованиям;

Такие дела.
---
круто
---
А если элементов справочника 200 хотя бы штук, 200 кнопок?)
---
да:3
но не планируется больше 50 кнопок
---
Это временно. Хотя и 50 кнопок - это полный зашквар.
---
моя задача сделать
---
В армии что ли?
---
если поможете, буду очень признателен!!
---
Я использую вот эту статью постоянно. Особенность есть в ней одна - один обработчик на все кнопки - очень удобно! https://infostart.ru/1c/articles/1118319/#_Toc18589864
---
Хреновый там код. Непонятно, зачем там из текста "Кнопка1" получают число 1? Процесс ради процесса? И почему нельзя назвать кнопки сразу нормальными именами, и программно задать им персональные команды, а вот уже командам можно задать единый обработчик, и в этом едином обработчике проверять именно имена команд? Вообще же не читаемый код в этой статье...
---
На одну и ту же книгу у разных людей часто диаметрально противоположные оценки. Мне статья помогала. Идею с цифрами я не стал применять, сделал по своему, но все равно через одну команду! Зачем 200 команд делать, если ТекущийЭлемент.Имя при нажатии даст имя самой кнопки. :)
---
Кто-то решил, что имя элемента должно совпадать с именем команды?
---
Кнопки мои, как хочу, так и называю. Их имена вообще-то у человека берутся из справочника! Если там код или уникальный идентификатор в имени, то легко будет найден нужный элемент справочника, "привязанный" к нажатой кнопке, дальше - нужный алгоритм.
Пользователям требуется возможность рисования эскизов для некоторых позиций при заполнении заказа покупателя.
Создан общий макет типа "Двоичные данные", в табличную часть "Товары" добавлен реквизит типа "ХранилищеЗначения", на форме в ТЧ "Товары" добавлена колонка-гиперссылка типа "Поле ввода" с выводимыми значениями "Указать" / "Просмотр"

Какой порядок работы задуман:
При нажатии на гиперссылку:
- если хранилище пустое, сохраняем шаблон из общего макета и запускаем приложение (пока Paint на этапе тестирования) с файлом шаблона;
- если хранилище заполнено, то сохраняем файл из хранилища и запускаем приложение.

Вопрос вот какой - как мне понять, что пользователь закончил работу с приложением и надо перезаписать хранилище, если размер файла изменился? Буду благодарен за любые идеи.

работа идет в УТ10.3. Соответственно, обычные формы.
---
Как-то так:

или так:
---
Как-то так:

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

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