arefaste/1C_Forums huggingface dataset:
Написал процедуру ввода на основании документа ОтчетПроизводстваЗаСмену документа УстановкаЦенНоменклатуры. Вот процедура:
+ Code

```1c
    Процедура ЗаполнитьТабличнуюЧастьПоОтчетПроизводстваЗаСмену(ДокументОтчетПроизводстваЗаСмену,Перезаполнение=Ложь)

    ТипЦенБазовый = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("Продажи");

    // Получим подчиненные типы цен.

    ПодчиненныеТипыЦен = ПолучитьПодчиненныеТипыЦен(ТипЦенБазовый);
    ПодчиненныеТипыЦен.Добавить(ТипЦенБазовый);

    //Обойдем массив в обратном порядке.

    КоличествоПодчиненныхТипов = ПодчиненныеТипыЦен.Количество();
    Для Тмп = 1 По КоличествоПодчиненныхТипов Цикл
    СтрокаТабличнойЧасти = ТипыЦен.Добавить();
    СтрокаТабличнойЧасти.ТипЦен = ПодчиненныеТипыЦен[КоличествоПодчиненныхТипов - Тмп];
    КонецЦикла;

    // 10.04.17

    Для Каждого СтрОтчетПроизводстваЗаСмену Из ДокументОтчетПроизводстваЗаСмену.Продукция Цикл
    ТипЦенНоменклатуры = ТипЦенБазовый;
    НомерСоответствияТекущейКолонки = мСоответствиеТиповЦен[ТипЦенНоменклатуры];
    // Добавить следующую номенклатуру

    НоваяСтрока = ТаблицаЦен.Добавить();
    НоваяСтрока.Номенклатура = СтрОтчетПроизводстваЗаСмену.Номенклатура;
    // 10.04.17 Для примера цену установим = 5

    СтрокаТабличнойЧасти["цена" + НомерСоответствияТекущейКолонки] = 5;

    КонецЦикла;

    КонецПроцедуры// ЗаполнитьТабличнуюЧастьПоОтчетПроизводстваЗаСмену()
```
---
Вот решение: НоваяСтрока["цена" + НомерСоответствияТекущейКолонки] = 5;
---
Процедура выдает ошибку {Документ.УстановкаЦенНоменклатуры.Форма.ФормаДокумента.Форма(1282)}: Поле объекта не обнаружено (цена)

            СтрокаТабличнойЧасти["цена" + НомерСоответствияТекущейКолонки] = 5;

Вопрос: как исправить ошибку?
---
Вот решение: НоваяСтрока["цена" + НомерСоответствияТекущейКолонки] = 5;
Всем Добрый день. Столкнулся с такой задачей:
Дано:
- БП 3.0 (рабочая)
- 1C: Учет в управляющих компаниях ЖКХ, ТСЖ И ЖСК 3.0 (пустая)
нужно все данные перекинуть из БП в ТСЖ, чтобы продолжить работать в ней исключив БП
официальная поддержка ТСЖ (рарус) предложила обработку и правила обмена между релизами БП 3.0.46.16 на ЖКХ 3.0.46.1.
релиз жкх совпадает с предложенным, но вот БП на данный момент уже давно обновлена на последнюю.
бэкапов нет.
идея в следующем- перекинуть данные с БП 3.0.46.20 (обновленная) в 3.0.46.16. чтобы потом по предложенным правилам сделать синхронизацию.
вопрос- какими инструментами это можно сделать?(желательно в подробностях,пошагово, т.к. я только только осваиваю эту нишу)

Спасибо!
---
это лишнее
...перекинуть данные с БП 3.0.46.20 (обновленная) в 3.0.46.16. чтобы потом по предложенным правилам сделать синхронизацию...

Делайте копию и тренеруйтесь на кошках и переносите предложенными правилами сразу в 3.0.46.20,
изменения между релизами скорее все не настолько существенны,
проанализируйте изменения между 3.0.46.16 и 3.0.46.20,
если не было изменения метаданных объектов (реквизитов, табличных частей и т.д.) то правила должны подойти,
Предложенные правила можно загрузить в конвертацию и доработать, при необходимости, до релиза 3.0.46.20.
Хорошая возможность освоить нишу)
---
я думаю там существенных различий метаданных нет, между 20 и 16...может пару форм регламентированных отчетов изменили, и какие нибудь ошибки исправили.
Так что перенесется нормально
---
это лишнее
...перекинуть данные с БП 3.0.46.20 (обновленная) в 3.0.46.16. чтобы потом по предложенным правилам сделать синхронизацию...

Делайте копию и тренеруйтесь на кошках и переносите предложенными правилами сразу в 3.0.46.20,
изменения между релизами скорее все не настолько существенны,
проанализируйте изменения между 3.0.46.16 и 3.0.46.20,
если не было изменения метаданных объектов (реквизитов, табличных частей и т.д.) то правила должны подойти,
Предложенные правила можно загрузить в конвертацию и доработать, при необходимости, до релиза 3.0.46.20.
Хорошая возможность освоить нишу)
---
(3)
Спасибо!
буду пытать и пытаться)
---
(3)
Сейчас загрузил структуру бп и тсж в кд, чтобы создать правила обмена, в верном направлении двигаюсь?
---
я думаю там существенных различий метаданных нет, между 20 и 16...может пару форм регламентированных отчетов изменили, и какие нибудь ошибки исправили.
Так что перенесется нормально
Добрый день.
Есть управляемая форма, в ней табличная часть. Делаю отбор (найти) по элементам
Как получить программно список оставшихся элементов?
---
(6)
вот что в итоге получилось

```1c
    Для каждого Элемент Из Объект.Пользователи Цикл

    ИдентификаторСтроки = Элемент.ПолучитьИдентификатор();

    Если ЭтаФорма.Элементы.Пользователи.ПроверитьСтроку(ИдентификаторСтроки) = Истина Тогда

    Элемент.Обрабатывать = Истина;

    КонецЕсли;

    КонецЦикла;
```

Т.е. мы перебираем табличную часть, получаем строку, потом получаем идентификатор (хотя в синтаксис помощнике написано просто строку) и ее проверяем в ТаблицаФормы.
---
Делаю отбор (найти) по элементам - уточните. Код нужен
---
ну просто Ctrl f и там в колонке ищу. В пользовательском режиме
---
Хмм... Проверь свойство таблицы формы "ОтборСтрок". Если при интерактивном отборе оно корректно устанавливается, то остальное дело техники.
---
там неопределенно
---
http://v8.1c.ru/o7/201404list/index.htm

а на младших версиях по ctrl+f вроде никак не увидишь кроме как перебором видимых строк.. только не могу вспомнить где это было и как называется ) то ли это к табличной части только, то ли к динамическому списку. А вообще погуглите, вроде много тем с этим вопросом попадалось
---
нашел. метод ПроверитьСтроку()
---
спасибо!
Вдогонку. Как перебрать элементы ТаблицаФормы чтоб проверить строки?
---
циклом, но лучше в запрос выгрузить таблицу, и через виртуальные таблицы обработать ее, с нужными условиями, и уже с результатом запроса потом работать.
---
чето не хочет он в цикл
---
на клиенте ни циклы ни запросы не работают.
---
на клиенте циклы работают, запросы нет.
---
выбивае
---
```1c
    Для Каждого стр Из ТабличнаяЧасть1 Цикл
    Элементы.ТабличнаяЧасть1.ПроверитьСтроку(стр)
    КонецЦикла;
```
---
(6)
вот что в итоге получилось

```1c
    Для каждого Элемент Из Объект.Пользователи Цикл

    ИдентификаторСтроки = Элемент.ПолучитьИдентификатор();

    Если ЭтаФорма.Элементы.Пользователи.ПроверитьСтроку(ИдентификаторСтроки) = Истина Тогда

    Элемент.Обрабатывать = Истина;

    КонецЕсли;

    КонецЦикла;
```

Т.е. мы перебираем табличную часть, получаем строку, потом получаем идентификатор (хотя в синтаксис помощнике написано просто строку) и ее проверяем в ТаблицаФормы.
"Розница 2.2"

Нужно добавить кнопку в подбор Арма кассира - так чтобы при выборе номенклатуры устанавливалось количество 0,5

- Обработка "РМКУправляемыйРежим"

- скриншот формы (куда добовлять ниже)
---
Сделал как раз на 5 старт мани))

ну вообще там действительно делов на 5, если знать куда смотреть и есть розница под рукой!

(1)Будут вопросы, пишите в личку!
---
Сделал как раз на 5 старт мани))

ну вообще там действительно делов на 5, если знать куда смотреть и есть розница под рукой!

(1)Будут вопросы, пишите в личку!
---
Огромное спасибо, при случае буду обращаться. Очень выручили.
---
Есть умельцы? на управляемых, могу добавить вознаграждение
---
я так понимаю, предлагается за решение вопроса примерно 90 рублей (курс 16 вроде, да?).

1) связаться с заказчиком, скачать себе базу, поставить
2) уточнить задачу (кто куда нажимает, что на самом деле нужно)
3) найти эту несчастную форму, разобраться где там какие кнопки, добавить что нужно
4) отправить заказчику5
5) преобразовать мани в рубли

за сто рублей? где такие ставки, интересно.
---
за сто рублей? где такие ставки, интересно.
Это даже дешевле чем на фрилансе... на тарелку супа даже не хватит.
А вообще там дел на 5 минут.
---
за пять минут ты даже подробности задачи не выяснишь.
пять минут там может чисто кодить, и то еще вопрос. В штатных конфигурациях 1с формы подбора товаров бывают весьма нетривиальные.
---
У меня 200+ магазинов на рознице... все эти формы уже вдоль и поперёк облазил.... Особенно после того как в одной сети магазинов установили POS с маленьким экраном. И формы РМК не входили по размеру и не масштабировались. Пришлось подгонять под размеры ПОСов.
за пять минут ты даже подробности задачи не выяснишь.
За 5 стартмани я даже пытаться не буду :)
---
Курс для пользователя (без публикаций) - если покупать абонемент:

100 рублей = 1sm

- вас же не заставляют)

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

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

  СГРУППИРОВАТЬ ПО
        Товары.ОстаткиИОбороты.Товар

И получаю не верное значение остатка. Подскажите, как сделать правильно. Заранее спасибо за помощь.
---
Вы получаете остаток всего товара! Вам нужно сперва получить таблицу Номенклатура |Максимум(Партия) И потом соединить её с таблицей остатков по Номеклатуре и Партии, в итоге получите остаток!
Примерно так:
ВЫБРАТЬ
 ТоварыНаСкладах.Номенклатура,
 МАКСИМУМ(ТоварыНаСкладах.Качество) КАК Качество
ПОМЕСТИТЬ ВТ_Максимум
ИЗ
 РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах

СГРУППИРОВАТЬ ПО
 ТоварыНаСкладах.Номенклатура
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
 ВТ_Максимум.Номенклатура,
 ВТ_Максимум.Качество,
 ТоварыНаСкладахОстатки.КоличествоОстаток
ИЗ
 ВТ_Максимум КАК ВТ_Максимум
  ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
  ПО ВТ_Максимум.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура
   И ВТ_Максимум.Качество = ТоварыНаСкладахОстатки.Качество
---
Вы получаете остаток всего товара! Вам нужно сперва получить таблицу Номенклатура |Максимум(Партия) И потом соединить её с таблицей остатков по Номеклатуре и Партии, в итоге получите остаток!
Примерно так:
ВЫБРАТЬ
 ТоварыНаСкладах.Номенклатура,
 МАКСИМУМ(ТоварыНаСкладах.Качество) КАК Качество
ПОМЕСТИТЬ ВТ_Максимум
ИЗ
 РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах

СГРУППИРОВАТЬ ПО
 ТоварыНаСкладах.Номенклатура
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
 ВТ_Максимум.Номенклатура,
 ВТ_Максимум.Качество,
 ТоварыНаСкладахОстатки.КоличествоОстаток
ИЗ
 ВТ_Максимум КАК ВТ_Максимум
  ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
  ПО ВТ_Максимум.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура
   И ВТ_Максимум.Качество = ТоварыНаСкладахОстатки.Качество
Здравствуйте!
Как вывести значения ячеек тз, получаемой из запроса, согласно условиям в соответствующие ячейки в макете?
колонки тз (получаемую из запроса):
Категория штат факт подразделение

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

выводит не правильно.
В чем разница между секцией и областью?
Между присоединить и вывести?

```1c
    СекцияП = ТабличныйДокумент.ПолучитьОбласть("R2C1");

    Для каждого строка из тз Цикл

    СекцияП.Параметры.Подразделение = строка.ПодразделениеПолное;
    ТабличныйДокумент.Вывести(СекцияП);
    КонецЦикла;
```

пишет: Поле объекта не обнаружено (Подразделение)
---
Можно просто в запросе переименовать поля под названиями параметров в макете. Т.е. в запросе что то типа: Выбрать Контрагент.Наименование КАК Контрагент и т.д.
В макете соответственно должен быть параметр у ячейки "контрагент". Затем получаешь область в макете. И через обращение к области ТвояОбласть.Параметры.Заполнить(выборка запроса) заполняешь макет, точнее он сам заполнится по одинаковым именам полей из запроса и параметру в макете.
Вывести - выводит результат в табличный документ. Присоединить - присоединяет область в существующей. В инете то уж про это почитать можно =) А по заполнению - как выше написал, меньше всего кода и удобнее всего заполнение получается.
---
Можно просто в запросе переименовать поля под названиями параметров в макете. Т.е. в запросе что то типа: Выбрать Контрагент.Наименование КАК Контрагент и т.д.
В макете соответственно должен быть параметр у ячейки "контрагент". Затем получаешь область в макете. И через обращение к области ТвояОбласть.Параметры.Заполнить(выборка запроса) заполняешь макет, точнее он сам заполнится по одинаковым именам полей из запроса и параметру в макете.
Вывести - выводит результат в табличный документ. Присоединить - присоединяет область в существующей. В инете то уж про это почитать можно =) А по заполнению - как выше написал, меньше всего кода и удобнее всего заполнение получается.
Имеется УФ с динамическим списком. Текст запроса динамического списка при начале работы системы не известен и устанавливается позже, при создании формы на сервере, через реквизит "Текст запроса".

```1c
    Форма.Список.ОсновнаяТаблица = "Справочник.Номенклатура";

    Форма.Список.ТекстЗапроса = "ВЫБРАТЬ
    | СправочникНоменклатура.Ссылка КАК Ссылка,
    | СправочникНоменклатура.Код КАК Код,
    | СправочникНоменклатура.Наименование КАК Наименование,
    | СправочникНоменклатура.Артикул КАК Артикул,
    | СправочникНоменклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    | СправочникНоменклатура.Производитель КАК Производитель,
    | СправочникНоменклатура.ТипНоменклатуры КАК ТипНоменклатуры
    |ИЗ
    | Справочник.Номенклатура КАК СправочникНоменклатура";
```

В самом динамическом списке, чтобы не тратить время на программное создание полей прописана заглушка:

```1c
    ВЫБРАТЬ
    " КАК Ссылка,
    " КАК Код,
    " КАК Наименование,
    " КАК Артикул,
    " КАК ЕдиницаИзмерения,
    " КАК Производитель,
    " КАК ТипНоменклатуры
```

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

Если немного изменить текст заглушки, на следующий:

```1c
    ВЫБРАТЬ
    " КАК Ссылка,
    " КАК Код,
    ВЫРАЗИТЬ(" КАК СТРОКА(100)) КАК Наименование,
    " КАК Артикул,
    " КАК ЕдиницаИзмерения,
    " КАК Производитель,
    " КАК ТипНоменклатуры
```

проблема отображения решается.

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

После добавления фиктивного элемента все отрисовывается красиво.

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

на самом деле это не единственная таблица в подобном контексте. существует еще несколько, и там различия более существенны.
---
А при программном добавлении на форму полей динамического списка - все красиво.
---
Причем, прописал добавление только одного поля, а отрисовались все проблемные. Чудеса.
---
Элемент = Форма.Элементы.Вставить("Поле", Тип("ПолеФормы"));

После добавления фиктивного элемента все отрисовывается красиво.

Возможно есть специальный метод для этого, но не нашел.
Подскажите плиз, кто решал проблему. Сроки горят, нет времени долго искать

Суть проблемы вот в чем. Имеем кусок кода

Данные = Данные + "fields[NAME]=" + Стр.Ссылка.Наименование + "&";
Данные = Данные + "fields[DESCRIPTION]=" + Стр.Ссылка.НаименованиеПолное + "&";

ЗапросHTTP.УстановитьТелоИзСтроки(Данные);

Если в наименовании попадается вдруг амперсанд (&) то при выполнении метода УстановитьТелоИзСтроки наименование разбивается по символу амперсанда, как будто это отдельное поле запроса

Пробовал делать так:

СтрЗаменить(Стр,"&","\u0026");

или так

СтрЗаменить(Стр,"&","%26");

Проблема обрезания наименования конечно уходит, но на сайте в наменовании не амперсанд, а соответственно \u0026 или %26
---
Получается, что проблема на серверной стороне, так как сервер не делает над наименованием преобразование типа urldecode. То есть исправлять на серверной стороне. Есть еще ﹠ U+FE60, & # 65120; SMALL AMPERSAND и ＆ U+FF06, & # 65286; FULLWIDTH AMPERSAND, если конечно, получится их передать.Ну или СтрЗаменить(Стр,"&"," And ");
---
Получается, что проблема на серверной стороне, так как сервер не делает над наименованием преобразование типа urldecode. То есть исправлять на серверной стороне. Есть еще ﹠ U+FE60, & # 65120; SMALL AMPERSAND и ＆ U+FF06, & # 65286; FULLWIDTH AMPERSAND, если конечно, получится их передать.Ну или СтрЗаменить(Стр,"&"," And ");
---
ну да, как вариант надо попробовать амперсанд другого вида, к серверу нет у меня доступа, там Битрикс24 и мне там править ничего не дадут
---
А что говорит техподдержка Битрикса24? Наверняка это какая-то общая проблема.
---
от них ответа ждать 2 дня, даже не писал им
вообще я отправляю методом POST, вряд ли при отправке через POST они используют urldecode для полей запроса
методом GET REST API Битрикса мне не дает отправлять для данной команды
---
С большим амперсандом сработало, может это и не лучшее решение проблемы, но хоть как-то
УТ 11.2

```1c
    ВЫБРАТЬ
    КонтрагентыКонтактнаяИнформация.Представление КАК Адрес,
    РеализацияТоваровУслугТовары.Ссылка.Контрагент КАК Контрагент,
    СУММА(ЕСТЬNULL(РеализацияТоваровУслугТовары.Сумма, 0) - ЕСТЬNULL(ПоступлениеБезналичныхДенежныхСредств.СуммаДокумента, 0) - ЕСТЬNULL(ПриходныйКассовыйОрдер.СуммаДокумента, 0)) КАК Сумма
    ИЗ
    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
    ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты.КонтактнаяИнформация КАК КонтрагентыКонтактнаяИнформация
    ПО РеализацияТоваровУслугТовары.Ссылка.Контрагент = КонтрагентыКонтактнаяИнформация.Ссылка
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеБезналичныхДенежныхСредств КАК ПоступлениеБезналичныхДенежныхСредств
    ПО РеализацияТоваровУслугТовары.Ссылка.Контрагент = ПоступлениеБезналичныхДенежныхСредств.Контрагент
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПриходныйКассовыйОрдер КАК ПриходныйКассовыйОрдер
    ПО РеализацияТоваровУслугТовары.Ссылка.Контрагент = ПриходныйКассовыйОрдер.Контрагент
    ГДЕ
    КонтрагентыКонтактнаяИнформация.Вид = &Вид
    И РеализацияТоваровУслугТовары.Склад = &Склад
    И (РеализацияТоваровУслугТовары.Ссылка.Дата МЕЖДУ &ДатаН И &ДатаК
    ИЛИ ПоступлениеБезналичныхДенежныхСредств.Дата МЕЖДУ &ДатаН И &ДатаК
    ИЛИ ПриходныйКассовыйОрдер.Дата МЕЖДУ &ДатаН И &ДатаК)

    СГРУППИРОВАТЬ ПО
    РеализацияТоваровУслугТовары.Ссылка.Контрагент,
    КонтрагентыКонтактнаяИнформация.Представление

    УПОРЯДОЧИТЬ ПО
    РеализацияТоваровУслугТовары.Ссылка.Контрагент
```

Не могу придумать как убрать отрицательные значения из поля Сумма. Помогите пожалуйста...
---
Поставить
ИМЕЮЩИЕ СУММА(ЕСТЬNULL(РеализацияТоваровУслугТовары.Сумма, 0) - ЕСТЬNULL(ПоступлениеБезналичныхДенежныхСредств.СуммаДокумента, 0) - ЕСТЬNULL(ПриходныйКассовыйОрдер.СуммаДокумента, 0)) >= 0

после группировки?
---
Поставить
ИМЕЮЩИЕ СУММА(ЕСТЬNULL(РеализацияТоваровУслугТовары.Сумма, 0) - ЕСТЬNULL(ПоступлениеБезналичныхДенежныхСредств.СуммаДокумента, 0) - ЕСТЬNULL(ПриходныйКассовыйОрдер.СуммаДокумента, 0)) >= 0

после группировки?
---
Спасибо огромное)))
---
Если вам нужно исключить строки с отрицательным значением поля сумма подойдет следующее: прописать в условии: СУММА(ЕСТЬNULL(РеализацияТоваровУслугТовары.Сумма, 0) - ЕСТЬNULL(ПоступлениеБезналичныхДенежныхСредств.СуммаДокумента, 0) - ЕСТЬNULL(ПриходныйКассовыйОрдер.СуммаДокумента, 0))>0.
Если нужно чтобы значение суммы всегда было положительным можно добавить в поле сумма условие:

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

(5) По нажатию открывается другая форма, это не строковое поле
2) можно делать Наименование=Строка(Описание) и Сортировать потом по наименованию.
---
Поле описание на форме, но не сортируется в алфавитном порядке, оно составное из 3 перечислений. Сортируется только по коду.

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