arefaste/1C_Forums huggingface dataset:
В ПеремещениеТоваров на форме надо заблокировать объект СкладОтправителя от изменений, кроме пользователя с полными правами?

полагаю надо установить параметр Объект.СкладОтправитель = Доступность(Ложь), но не работает

```1c
    &НаСервере
    Процедура ПриЧтенииНаСервере(ТекущийОбъект)
    ДатыЗапретаИзменения.ОбъектПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект);

    Если (НЕ РольДоступна("ПолныеПрава")) Тогда

    ???...что то тут добавить???

    КонецЕсли;

    ПодготовитьФормуНаСервере();

    КонецПроцедуры
```
---
```1c
    Элементы.СкладОтправитель.Доступность = Ложь;
```
---
по-моему доступность не у объекта - данных формы а у элемента формы настраивается
элементы.имяполянаформе.доступность = ложь
---
почему элементы, если определение склада по умолчанию проходит как объект.складотправитель=бух....
---
```1c
    Элементы.СкладОтправитель.Доступность = Ложь;
```
---
Если это БП, то смотрите в этом же документе есть процедура

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

- это Тип Справочник - нет такого....
---
Для ссылочных типов тоже есть, это не от типа данных зависит, а управляет доступностью самого реквизита.
---
решение в
(4) Элементы.СкладОтправитель.Доступность = Ложь;
Доброе время суток. Может кто уже сталкивался, необходимо массово назначить PLU код для весового товара. С помощью групповой обработки выбираю весовой товар, но не знаю как сгенерировать код PLU.

Пытаюсь сделать так, но что то не присваивается код PLU

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

```1c
    Запрос = Новый Запрос(
    "ВЫБРАТЬ
    | МАКСИМУМ(Регистр.Код) КАК Код
    |ИЗ
    | РегистрСведений.КодыВесовогоТовара КАК Регистр");
    Выборка = Запрос.Выполнить().Выбрать();

    Результат = 1;
    Если Выборка.Количество() > 0 Тогда
    Выборка.Следующий();
    Если ЗначениеЗаполнено(Выборка.Код) Тогда
    Результат = Выборка.Код + 1;
    КонецЕсли;
    КонецЕсли;

    менЗаписи = РегистрыСведений.Цены.СоздатьМенеджерЗаписи();
    менЗаписи.Номенклатура = Объект.Ссылка;
    менЗаписи.Код = Результат;
    менЗаписи.Записать();
```
---
Сделал так.

```1c
    Запрос = Новый Запрос(
    "ВЫБРАТЬ
    | МАКСИМУМ(Регистр.Код) КАК Код
    |ИЗ
    | РегистрСведений.КодыВесовогоТовара КАК Регистр");
    Выборка = Запрос.Выполнить().Выбрать();

    Результат = 1;
    Если Выборка.Количество() > 0 Тогда
    Выборка.Следующий();
    Если ЗначениеЗаполнено(Выборка.Код) Тогда
    Результат = Выборка.Код + 1;
    КонецЕсли;
    КонецЕсли;

    менЗаписи = РегистрыСведений.Цены.СоздатьМенеджерЗаписи();
    менЗаписи.Номенклатура = Объект.Ссылка;
    менЗаписи.Код = Результат;
    менЗаписи.Записать();
```
---
если есть штрих код то можно из штрих кода выделить plu
на картинке пример
Приветствую, форумчане!
"Управление торговлей 10.3", (Моби-С 5.5). "ABBYY Ukraine", 2003-2014 (2.3.20.1)

Делаю обработку, которая позволяет массово создавать документы Реализации на основании Заказов.
В обработке формируется список заказов, далее на основании этого списка создаются, но даже не записываются документы Реализаций для последующего контроля Реализаций...

Так вот на счет контроля. Дело в том, что бывают случаи, когда на момент формирования Реализации на основании Заказа, товара на складе уже не хватает, т.е. документ Реализации по составу и сумме уже отличается от документа Заказа...

Можно ли как-то проверить сумму этого незаписанного нового документа Реализации получить для сравнения с суммой Заказа?

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

    //Реализация.Записать();
    Реализация.ПолучитьФорму().Открыть();
    Сообщить(Реализация.СуммаДокумента);

    КонецЕсли;
    Исключение
    КонецПопытки;
    КонецЦикла;
```

Сейчас Раелизация.СуммаДокумента дает "0"

В дальнейшем потребуется сравнить Раелизация.СуммаДокумента с ТС.Сумма и если суммы не равны, то не выводить документ Реализации, а Заказ распроводить.
---
Вероятно, нужно получить итог по табличной части, а не сумму документа.
---
Вероятно, нужно получить итог по табличной части, а не сумму документа.
---
Пробовал, так получается, но итог только по реквизиту "Сумма", но этот реквизит не учитывает НДС, следовательно уже не правильно. А Итог по графе "Всего" не дает результата
---
Можно получить форму документа, и пробежаться по элементам ТЧ формы и просуммировать
---
Если память не изменяет, то в модуле менеджера или объекта есть процедура расчета суммы документа. Почему бы ее не вызвать после Реализация.Заполнить(Док.Ссылка);
---
Всем спасибо за наводку, наверное будет правильным так:

```1c
    СуммаДокумента = Реализация.Товары.Итог("Сумма") + Реализация.Товары.Итог("СуммаНДС")
```

Если я конечно прав...
---
ЦенаВключаетНДС всегда?
---
Надо всегда закладывать полный функционал 1с... Случаи они разные бывают
---
В 10.3 сумма считается так.

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

Так вы учтете вариации ЦенаВключаетНДС, возвратные тары и пр и не изобретете велосипед.
Столкнулся с такой проблемой.
Делаю отчет на СКД. Создал набор данных объединение. В него поместил 2 набора данных запрос.
Первый запрос:

```1c
    ВЫБРАТЬ
    Контрагенты.Ссылка КАК Контрагент,
    Контрагенты.ЮридическоеФизическоеЛицо КАК ЮридическоеФизическоеЛицо
    ИЗ
    Справочник.Контрагенты КАК Контрагенты
```

Второй запрос:

```1c
    ВЫБРАТЬ
    Номенклатура.Ссылка КАК Номенклатура,
    Номенклатура.Услуга КАК Услуга
    ИЗ
    Справочник.Номенклатура КАК Номенклатура
```

На вкладке Настройки создал группировку "Детальные записи" и добавил отбор по Услуга и ЮридическоеФизическоеЛицо

Если выполняю отчет без включения отбора, то все выводится так как надо - сначала данные по первому запросу, потом по второму.

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

Т.е. если я устанавливаю отбор "Услуга равно Да", то выводятся данные только по Номенклатуре.

Основной вопрос такой: как мне сделать так, чтобы при установке отбора выбирались данные из обоих запросов (с соответствующим отбором конечно)

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

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

```1c
    Запрос.Текст =
    "....
    |из
    | Документ.ДокументыСОперациями КАК ДокументСОперациями
    |где
    | &ОтборПоРолям ИЛИ ДокументСОперациями.Операция В (&ДоступныеРоли)"

    ОтборПоРолям = Ложь;
    ДоступныеРоли = Новый Массив;

    Если НЕ РольДоступна("ТаРольКотораяРазрешаетСмотретьТеСамыеОперации") Тогда
    ОтборПоРолям = Истина;
    ДоступныеРоли.Добавить(Перечисления.НужныеОперации.НужнаяОперация);
    КонецЕсли;

    Запрос.УстановитьПараметр("ОтборПоРолям", ОтборПоРолям);
    Запрос.УстановитьПараметр("ДоступныеРоли", ДоступныеРоли);
```
---
Ограничение доступа на уровне записей. В типовых ERP и УТ11 это реализовано: можно настраивать видимость документов по хоз. операциям.
---
сделал в РЛС - в роли что добавил , на чтение всего одну строчку написать Не ДокументТакойто = Перечисление.ВидОПерации.Зарплата. Запросом не пробовал может тоже можно
Ребята, помогите, есть новая конфа (не моя, ломать нельзя), есть у справочника реквизит фотография, тип: "Хранилище значения". Есть ооочень много фоток которые нужно загрузить. Пользуюсь стандартной обработкой "Загрузка данных из табличного документа"
так вот, подскажите что мне писать в блок "вычислить"? результат=ТекстыЯчеек.Получить(2);?
В табличке адрес с месторасположением картинки (E:\изображения\КАРТИНКА.jpg)
Помогите с умными мыслями, в долгу не останусь :)
---
Результат = Новый ХранилищеЗначения(Новый ДвоичныеДанные(ТекстЯчейки)); в ТекстЯчейки - путь к файлу
---
Результат = Новый ХранилищеЗначения(Новый ДвоичныеДанные(ТекстЯчейки)); в ТекстЯчейки - путь к файлу
---
Спасибо!!!!!!!!!!!!!!!!!!!
(2) Результат = Новый ХранилищеЗначения(Новый ДвоичныеДанные(ТекстЯчейки))
Огромное спасибо!!!!
---
если много фоток - просто сохраняй их в файлы

```1c
    Функция ПолучитьФайлСервер(ПутьКДанным) Экспорт

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

    КонецФункции

    Функция ЗаписатьФайлСервер(АдресВременногоХранилища,ПутьНаСервере) Экспорт

    Попытка
    ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресВременногоХранилища);
    ДвоичныеДанные.Записать(ПутьНаСервере);
    Возврат Истина;
    Исключение
    Возврат Ложь;
    КонецПопытки;

    КонецФункции
```
Добрый день! Процедура во Внешней обработке для замены в документах одной номенклатуры на другую:

```1c
    &НаСервере
    Процедура ЗаменитьНаСервере(ДокументСсылка,НоменклатураДляЗамены,НоваяНоменклатура)
    Тов=ДокументСсылка.Товары;
    Для Каждого Стр из Тов Цикл
    Если Стр.Номенклатура=НоменклатураДляЗамены тогда
    Стр.Номенклатура=НоваяНоменклатура;
    КонецЕсли;
    КонецЦикла;
    ДокументСсылка.Записать(РежимЗаписиДокумента.Проведение);
    КонецПроцедуры
```

Выдает ошибку "Поле объекта недоступно для записи(Номенклатура)"
Где моя ошибка не могу понять. Пожалуйста подскажите.
---
ДокументСсылка - это ссылка, а менять нужно объект
---
ДокументСсылка - это переменная с типом ДокументОбъкет?
---
```1c
    ДокументОбъект = ДокументСсылка.ПолучитьОбъект();
    Тов=ДокументОбъект.Товары
    ...
    ...
    ..
    ДокументОбъект .Записать()
```
---
ДокументСсылка - это ссылка, а менять нужно объект
---
ДокументСсылка - это переменная с типом ДокументОбъкет?
---
```1c
    ДокументОбъект = ДокументСсылка.ПолучитьОбъект();
    Тов=ДокументОбъект.Товары
    ...
    ...
    ..
    ДокументОбъект .Записать()
```
---
ДокументОбъект = ДокументСсылка.ПолучитьОбъект();
Тов = ДокументОбъект.Товары;

иначе потом не запишет объект

ДокументОбъект .Записать();
---
Уже понял свою ошибку и исправил )
---
Так тоже пробовал. Та же ошибка
Прикрепляю обработку.
---
Заменить

```1c
    Тов=ДокументСсылка.Товары;
```

на

```1c
    Тов=ДокументОбъект.Товары;
```
---
И, скорее всего, потребуется заменить единицу измерения и коэффициент, если в конфигурации ведется учет в разрезе единиц измерений
---
Да придется, но тут можно вызвать стандартную процедуру обработчика при изменении номенклатуры, что бы не писать что то своё.
---
я бы не полагался на те значения, которые заполнятся по-умолчанию. Если не изменяет память - заполнится единица хранения остатков, а в документе может стоять другая, из-за этого количество может стать неверным.
---
Спасибо Всем! Все работает

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

    ВведенныйИнвентарныйНомер = Элемент.Значение;
    НайденноеЗначение = Справочники.ИнвентарныеНомераОС.НайтиПоРеквизиту("Код",

    ВведенныйИнвентарныйНомер);

    Если НайденноеЗначение.Код <> " Тогда

    Сообщить("Номер - "+ НайденноеЗначение.Код +" не уникальный, с таким номером есть

    объект '"+ НайденноеЗначение +"'");

    ИнвентарныйНомерПолеВвода = Неопределено;
    ОчисткаПолейВвода(ИнвентарныйНомерПолеВвода);

    ТекущийЭлемент = ЭлементыФормы.ИнвентарныйНомерПолеВвода;

    КонецЕсли;

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

```1c
    {Документ.БС_ПриходТоваров.Форма.ФормаДокумента.Форма(743)}: Ошибка при вызове метода контекста

    (НайтиПоРеквизиту) НайденноеЗначение = Справочники.ИнвентарныеНомераОС.НайтиПоРеквизиту("Код",

    ВведенныйИнвентарныйНомер);
    по причине:
    Неверно указан реквизит
```

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

Параметры:

<ИмяРеквизита> (обязательный)

Тип: Строка.
Имя реквизита, как он задан в конфигураторе, по значению которого осуществляется поиск. Тип значения произвольный, кроме ХранилищеЗначения и строк произвольной длины.
---
Код - это не реквизит, это служебное поле. Для него есть НайтиПоКоду()
---
{Документ.БС_ПриходТоваров.Форма.ФормаДокумента.Форма(743)}: Ошибка при вызове метода контекста (НайтиПоКоду)
 НайденноеЗначение = Справочники.ИнвентарныеНомераОС.НайтиПоКоду("Код", ВведенныйИнвентарныйНомер);
по причине:
Несоответствие типов (параметр номер '2')
---
Справочники.ИнвентарныеНомераОС.НайтиПоКоду("Код", ВведенныйИнвентарныйНомер);
Справочники.ИнвентарныеНомераОС.НайтиПоКоду(ВведенныйИнвентарныйНомер);
---
а что, в справку по неизвестной функции заглянуть - вообще лень было?
есть в базе коды начинающиеся латинскими символами - для них необходимо создать представление на русской раскладке (например enq1715 - утй1715).
Может кто подскажет как транслировать английские символы в русские именно в соответсвии с раскладкой клавиатуры? Может есть какая нибудь внешняя компонента?
Создавать соответсвие и делать это перебором выглядит как то очень не технологично)))
---
с_р = "ё йцукенгшщзхъ фывапролджэ ячсмитьбю Ё ЙЦУКЕНГШЩЗХЪ ФЫВАПРОЛДЖЭ ЯЧСМИТЬБЮ";
c_a = "` qwertyuiop[] asdfghjkl;' zxcvbnm,. ~ QWERTYUIOP{} ASDFGHJKL:"+Символ(34)+" ZXCVBNM<>";
А = Сред(c_a,СтрНайти(с_р,Р),1);

Где
А - Англ буква,
Р - Русская
---
А тащить за собой библиотеку, которая потащит за собой DotNet (API, а как еще) и будет работать только на Win технологично?
Не нравится соответствие - сделайте с помощью СЗ (значение и представление) :)
Чтобы не перебирать - пользуйтесь методами объектов.
---
с_р = "ё йцукенгшщзхъ фывапролджэ ячсмитьбю Ё ЙЦУКЕНГШЩЗХЪ ФЫВАПРОЛДЖЭ ЯЧСМИТЬБЮ";
c_a = "` qwertyuiop[] asdfghjkl;' zxcvbnm,. ~ QWERTYUIOP{} ASDFGHJKL:"+Символ(34)+" ZXCVBNM<>";
А = Сред(c_a,СтрНайти(с_р,Р),1);

Где
А - Англ буква,
Р - Русская
---
класс, спасибо огромное - отлично решает проблему с необходимостью переключения раскладки при подборе))))
Вот очень глупый вопрос - как изменить цвет линий в javascript?
Рисую задание местных франчей - они желают себе взять на работу стажера-программиста,к-й в javascript нарисует им без css молнию и загрузит ее в 1-ску...

Ну с вопросом загрузки в 1с-ку - это явно подвох работы с конкретной виндой и IE, к-й решается элементарно просто, но вот простенький рисунок по их желанию "Молния" - я нарисовала, но почему-то он у меня никак не хочет разукрашиваться....уже плачу)))

п.с.см.крины
п.с.2.вот зря,наверное,спрашиваю - конкуренты скопируют и аж 15тр/мес вперед меня побегут получать)))
п.с.3 Параллельно на др.компе идет док.фильм - там индейцев раньше посещали боги,которых они звали Анунаки.....и вот я в этот момент бьюсь со своей наиглупейшей задачей)))) Аж стало жалко древних индейцев - может их в древности посещали наши братья-сестры Славяне,которые ремонтировали свои поломки корабля и выражались по-русски, а индейцы просто не дослышали решающий звук и назвали их "Анунаками"????)))
................я уже тоже хочу закричать-"А на наки, эта стажерка?????"))))
п.с.4.редакторы для творчества html: - notepade++(бесплатный доступ),а потом в стандарном html-редакторе 1с8-ки,входящим в уч.версию.
---
strokeStyle вместо fillStyle
---
strokeStyle вместо fillStyle
---
ctx.fillStyle = "orange";
в коде же написано....ну пусть на апельсиновая молния - хотя почему нет, но хоть какая-нибудь!!!! не работает...
---
я же ответил почему не работает, что непонятного?
---
<sc ript>
   var example = document.getElementById("example"),
       ctx = example.getContext('2d');
  <!--Линия по диагонали-->
  ctx.strokeStyle= "orange";
ctx.moveTo(280,0);
ctx.lineTo(240,160);
ctx.stroke();
ctx.moveTo(240,160);
ctx.lineTo(200,50);
ctx.stroke();
ctx.moveTo(200,50);
ctx.lineTo(180,300);
ctx.stroke();
ctx.moveTo(180,300);
ctx.lineTo(150,160);
ctx.stroke();
ctx.moveTo(180,300);
ctx.lineTo(250,160);
ctx.stroke();
ctx.moveTo(260,0);
ctx.lineTo(260,80);
ctx.stroke();
ctx.moveTo(300,0);
ctx.lineTo(260,80);
ctx.stroke();
  </sc ript>

вот тот код,там сразу уже ctx.fillStyle = "orange";.............................

кхе-кхе...все,пошла стреляться,работает!!! "Ану наки!!!!"))) Спасибо!
---
как можно не замечать, что в (2) вместо fillStyle я говорю про другое?
---
а можно спросить: как эту молнию сделать мигающей????

Когда-то в школе рисовала слона,но....вот чего-то не помню...
---
использовать функцию setInterval(), которая будет выполнять рисующую/очищающую функцию
---
Спасибо,буду разбираться....эх,пример кода бы....Но ни страшно,найду.Спасибо!
Здравствуйте! такая ситуация возникла, у одного поставщика разная номенклатура и одинаковый штрих-код, в ут 11.3 к сожалению нельзя задавать одинаковый шк для разной номенклатуры, подскажите как быть? у кого-то же по любому была такая ситуация? лезть в код конечно при отсутствии другого варианта придется но мало ли, в друг кто сталкивался?
---
у регистра есть одно измерение штрихкод. Оно уникально.
Все механизмы поиска заточены на 1 измерение.
Поставщик просто по неправильному пути пошел!
Вводите характеристики, как раз до начала года успеете.
---
у регистра есть одно измерение штрихкод. Оно уникально.
Все механизмы поиска заточены на 1 измерение.
Поставщик просто по неправильному пути пошел!
Вводите характеристики, как раз до начала года успеете.
---
Мы вводим характеристики и допиливаем конфу чтобы их как партии использовать. Но я думаю вам достаточно будет их как характеристики использовать.
---
да, партии нам в принципе не нужны....то есть у нас будет одна номенклатура, с двумя характеристиками выходит так? то есть по сути у нас идет один и тот же товар только одна упаковка большая, а другая мелкая...наверно тут и логично характеристики вводить.
---
правда пришлось снять проверку записи в регистре т.к. он просит обязательно записывать характеристику. А у нас они как партии, что не требуется. Но это уже минимум.
---
попробую, спасибо.
---
скорее всего разная номенклатура, получена от двух поставщиков, которые кодируют у себя продукцию средствами 1С, таким образом при приеме продавец считывая штрих код поставщика может получить дубли, используйте собственный штрих код и наклейте его на поступающую продукцию.
---
Поддерживаю. После оприходования товар становится вашей номенклатурой с вашими кодами, артикулами и наименованиями.
Есть регистр сведений с ресурсами - группа, подгруппа, наименование, описание. тип - строка.
Нужно в форму вывести список в таком виде?
ПодГруппа1
    Наименование1
    Наименование2
    Наименование2
    Наименование3
ПодГруппа2
    Наименование5

Но у меня получается вывести только так:
ПодГруппа1
    Наименование1
ПодГруппа1
    Наименование2
ПодГруппа1
    Наименование2
ПодГруппа1
    Наименование3

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

```1c
    ВыборкаПодгруппа = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Подгруппа");
    Пока ВыборкаПодгруппа.Следующий() Цикл
    ДеревоУр1 = Дерево.Строки.Добавить();
    ДеревоУр1.Наименование = ВыборкаПодгруппа.Подгруппа;
    Выборка = ВыборкаПодгруппа.Выбрать();
    Пока Выборка.Следующий() Цикл
    ДеревоУр2 = ДеревоУр1.Строки.Добавить();
    ДеревоУр2.Наименование = Выборка.Наименование;
    КонецЦикла;
    КонецЦикла;
```

Я не проверял, но думаю суть понятна
---
Чем дерево значений не устраивает? Или ты не знаешь как его получить?
---
Видимо не знаю как его получить, подскажите пожалуйста.
---
Если тебе надо в одну колонку, то запрос тот же, но после него:

```1c
    ВыборкаПодгруппа = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Подгруппа");
    Пока ВыборкаПодгруппа.Следующий() Цикл
    ДеревоУр1 = Дерево.Строки.Добавить();
    ДеревоУр1.Наименование = ВыборкаПодгруппа.Подгруппа;
    Выборка = ВыборкаПодгруппа.Выбрать();
    Пока Выборка.Следующий() Цикл
    ДеревоУр2 = ДеревоУр1.Строки.Добавить();
    ДеревоУр2.Наименование = Выборка.Наименование;
    КонецЦикла;
    КонецЦикла;
```

Я не проверял, но думаю суть понятна
---
Создай на форме Дерево значений с колонками "Подгруппа, Наименование"

```1c
    &НаСервере
    Процедура ПрочитатьДерево()

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

    КонецПроцедуры
```
---
Большое спасибо! Все получилось.
---
в запросе укажи группировку.