arefaste/1C_Forums huggingface dataset:
Здравствуйте.
делал тестовое задание - надо было динамически создавать Таблицу Значений, по некой выборке.
Мой код:

```1c
    ТЗвыборка = Новый ТаблицаЗначений;
    ТЗвыборка.Колонки.Добавить("СправочникПоОсиУ",Новый ОписаниеТипов("СправочникСсылка.Справочник1"));
    для й = 0 по МассивВыборки.Количество()-1 цикл
    ТЗвыборка.Колонки.Добавить("Колонка"+строка(й),Новый ОписаниеТипов("Строка"),МассивВыборки[й].Наименование);
    конеццикла;
```

Мне написали:
При формировании идентификатора колонки "Колонка" выполняется неявное форматирование индекса.
Если я правильно понял, то замечание относиться именно к этому куску кода.

Вопрос: Что имеется в виду, под "неявным форматирование индекса"?
В чем здесь ошибка?

ПС. Названия колонок в задаче были другие, тут заменил на просто "Колонка".
---
Внутри вашего цикла по счетчику производится конкатенация строковой константы и значения счетчика. Именно это значение ваш рецензент обозвал "индексом". При выполнении конкатенации система попытается привести значение счетчика к типу строка используя стандартное форматирование чисел. Когда значение счетчика превысит 999 ваш код упадет с ошибкой.
---
трудно сказать, что они имели ввиду не зная их компетенцию.
Как вариант, вот это: "Колонка"+строка(й)
Но я бы охарактиризовал это как явное приведение типа. Можно было написать короче:
"Колонка"+й. Будет тоже самое, но платформа сделает приведение типа сама. Разница только в длине кода.
---
Функции неявного преобразования Строка(), Формат(), СокрЛП() ....
---
Спасибо.
---
Это функции явного преобразования.
Неявное преобразование это когда платформа преобразует значения например 1 к Истине при сравнении.....
---
Могу предположить, что формат строки не задан.
---
, (3) Спасибо!
---
Спросите у того кто вам такой ответ дал. Что он имел ввиду под "неявным форматированием индекса"....
---
Внутри вашего цикла по счетчику производится конкатенация строковой константы и значения счетчика. Именно это значение ваш рецензент обозвал "индексом". При выполнении конкатенации система попытается привести значение счетчика к типу строка используя стандартное форматирование чисел. Когда значение счетчика превысит 999 ваш код упадет с ошибкой.
---
А точно!!
забыл совсем про это.
Уже не раз на это попадал)))
Там формат используешь, чтобы в разделителе разрядов после 3-х цифр не было пробела, т.к. 1с отделяет по умолчанию.
Добрый день.
Есть отчет СКД. Условным оформление я по условию закрашиваю в зелёный цвет.
В группировки ресурс у меня закрашивается в зеленый цвет.
А мне надо, что бы в группировки ресурс закрашивался в зелёный цвет, только когда все строке в группировке закрасились в зелёный цвет.

Как это сделать. Спасибо.
---
как вариант - условие, которое отвечает за окраску - внести в сам запрос добавив поле запроса Окрашивать, которое должно принимать значение Истина или Ложь (используйте "выбор когда" и проверяйте условие). А в СКД это поле сделайте ресурсом с функцией минимум. Таким образом, если внутри группировки будет хоть одна Ложь - то значение поля группировки тоже будет Ложь.
---
Попробуй не для всего отчёта условное оформление сделать, а для строк.
---
как вариант - условие, которое отвечает за окраску - внести в сам запрос добавив поле запроса Окрашивать, которое должно принимать значение Истина или Ложь (используйте "выбор когда" и проверяйте условие). А в СКД это поле сделайте ресурсом с функцией минимум. Таким образом, если внутри группировки будет хоть одна Ложь - то значение поля группировки тоже будет Ложь.
---
еще вариант сделать вычисляемое поле и рассчитывать функцией значение поля.
---
Большое спасибо.
Добрый день!

Столкнулся, что неясно, как подключить внешние обработки в типовые конфигурации. с Бухгалтерией только понятно. Но ЗУП, УТ, ERP - только вопросы.

В ЗУП видим такое изображение

https://hostingkartinok.com/show-image.php?id=652aef27038f59bb16796144788bf8f1

УТ аналогично

Как подключаются в эти конфигурации внешние обработки, кто знает?
---
Перед использованием печатных форм необходимо поставить галочку . Форма её располагается обычно на той же вкладке «Администрирование». Вот инструкция:
http://tekdata.ru/kak-podkluchit-vneshnuu-pechatnuu-formu-v-1s-83/
---
Перед использованием печатных форм необходимо поставить галочку . Форма её располагается обычно на той же вкладке «Администрирование». Вот инструкция:
http://tekdata.ru/kak-podkluchit-vneshnuu-pechatnuu-formu-v-1s-83/
---
Да, это помогло, спасибо
Есть ли в УТ 11 аналог функции , получающий разность дат по календарю, но для использования в запросе в СКД?
смущают периоды в несколько лет ...
  Функция ПолучитьРазностьДатПоКалендарю(Знач ГрафикРаботы, Знач ДатаНачала, Знач ДатаОкончания, ВызыватьИсключение = Истина) Экспорт
// Функция определяет количество дней, входящих в график, для указанного периода.
---
В СКД просто получайте запросом по регистру ДанныеПроизводственногоКалендаря с условиями:
- Дата между ДатаНачала и ДатаКонец
- ВидДня = Рабочий (Если нужно)
и выбирать:
Выбрать Количество(Различные ДанныеПроизводственногоКалендаря .Дата)
---
В СКД просто получайте запросом по регистру ДанныеПроизводственногоКалендаря с условиями:
- Дата между ДатаНачала и ДатаКонец
- ВидДня = Рабочий (Если нужно)
и выбирать:
Выбрать Количество(Различные ДанныеПроизводственногоКалендаря .Дата)
---
В СКД просто получайте запросом по регистру с условиями:
- Дата между датой началом и датой концом
вид дня лучше рабочий, а так можно не выбирать
---
Спасибо!
Конфигурация УТ 10.3
Пытаюсь составить запрос и вытащить цены номенклатуры из регистра цены номенклатуры (срез последних).
Все было хорошо, пока не поставил в параметрах расчетный тип цен.
Т.е. он не храниться в регистре. И запрос ничего не выдает... (((
Как составить запрос, чтобы расчетные цены тоже в него попадали?
Или тут только дополнительную функцию придется использовать при выводе каждой строки?
---
```1c
    ВЫБРАТЬ
    Ц.Номенклатура,
    Ц.ТипЦен,
    Ц.Цена
    ПОМЕСТИТЬ тБазовыеЦены
    ИЗ
    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, {(Номенклатура).* КАК Номенклатура, (ТипЦен) КАК ТипЦен}) КАК Ц
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    тБазовыеЦены.Номенклатура,
    ТЦ.Ссылка КАК ТипЦены,
    ВЫРАЗИТЬ((100 + ТЦ.ПроцентСкидкиНаценки) * тБазовыеЦены.Цена / 100 КАК ЧИСЛО(15, 2)) КАК Поле1
    ПОМЕСТИТЬ тРасчетныеЦены
    ИЗ
    Справочник.ТипыЦенНоменклатуры КАК ТЦ
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ тБазовыеЦены КАК тБазовыеЦены
    ПО ТЦ.БазовыйТипЦен = тБазовыеЦены.ТипЦен
    ГДЕ
    ТЦ.Рассчитывается
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    тБазовыеЦены.Номенклатура,
    тБазовыеЦены.ТипЦен,
    тБазовыеЦены.Цена
    ИЗ
    тБазовыеЦены КАК тБазовыеЦены

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    тРасчетныеЦены.Номенклатура,
    тРасчетныеЦены.ТипЦены,
    тРасчетныеЦены.Поле1
    ИЗ
    тРасчетныеЦены КАК тРасчетныеЦены
```
---
добавьте в запрос расчет этих цен
---
```1c
    ВЫБРАТЬ
    Ц.Номенклатура,
    Ц.ТипЦен,
    Ц.Цена
    ПОМЕСТИТЬ тБазовыеЦены
    ИЗ
    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, {(Номенклатура).* КАК Номенклатура, (ТипЦен) КАК ТипЦен}) КАК Ц
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    тБазовыеЦены.Номенклатура,
    ТЦ.Ссылка КАК ТипЦены,
    ВЫРАЗИТЬ((100 + ТЦ.ПроцентСкидкиНаценки) * тБазовыеЦены.Цена / 100 КАК ЧИСЛО(15, 2)) КАК Поле1
    ПОМЕСТИТЬ тРасчетныеЦены
    ИЗ
    Справочник.ТипыЦенНоменклатуры КАК ТЦ
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ тБазовыеЦены КАК тБазовыеЦены
    ПО ТЦ.БазовыйТипЦен = тБазовыеЦены.ТипЦен
    ГДЕ
    ТЦ.Рассчитывается
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    тБазовыеЦены.Номенклатура,
    тБазовыеЦены.ТипЦен,
    тБазовыеЦены.Цена
    ИЗ
    тБазовыеЦены КАК тБазовыеЦены

    ОБЪЕДИНИТЬ ВСЕ

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

Обращаю внимание, что правильный отбор - по полю "Тип цены"
---
Обращаю внимание, что правильный отбор - по полю "Тип цены"
Спасибо! По полю "тип цены" - отбор работает по всем типам цен!
В общем столкнулся с интересной проблемой. Была сделана внешняя печатная форма на базе типовой печатной формы 1С. В целом проблем нет, кроме одной.

Изначально был добавлен свой параметр в существующую область, но 1С его не видела и не видит, после чего была добавлена отдельная область ей присвоено имя, там созданы параметры для заполнения, но 1с не видит область и выдает ошибку

```1c
    {ВнешняяОбработка.РасходныйОрдерДанныеПолучателя.МодульОбъекта(507)}: Ошибка при вызове метода контекста (ПолучитьОбласть)
    ОластьДоставка = Макет.ПолучитьОбласть("Доставка");
    по причине:
    Область не найдена: Доставка
```
---
Вы добавили область в пользовательский макет, а ищете, вероятно, в макете, "зашитом" в конфигурацию.
---
Вы добавили область в пользовательский макет, а ищете, вероятно, в макете, "зашитом" в конфигурацию.
---
да, большое Вам спасибо

```1c
    Макет = УправлениеПечатью.МакетПечатнойФормы("Документ.РасходныйОрдерНаТовары.ПФ_MXL_РасходныйОрдерНаТовары");
```

я настолько зациклился на области что все остальное даже не смотрел
В реквизитах формы документа есть табличный документ, в нем я отображаю данные табличной части в графическом виде, в нем находится много рисунком и т.д. При вызове серверной процедуры из клиентской сам вызов занимает около 10 секунд, можно как то ограничить список передаваемых реквизитов с формы на сервер?
---
Есть два варианта:
а) Переделать всё в вызовы &НаКлиенте и не вызывать сервер лишний раз. Временные значения чаще лучше получать в обработчике ПриЧтенииНаСервере() и сохранять во временные реквизиты формы.
б) Если уж без вызова сервера - никак, то
- постарайтесь минимизировать число таких вызовов. Лучше один вызов с обработкой всего, чем десяток мелких вызовов. Кстати, функции вроде ПредопределенноеЗначение() тоже вызывают сервер, следите и за этим!
- для своих процедур ставьте директивы &НаСервереБезКонтекста вместо &НаСервере. Тогда на сервер и обратно не будет передаваться весь контекст формы, а это здорово сократит трафик. Также, для параметров примитивных типов, которые не должны изменяться, имеет смысл указывать ЗНАЧ. например:

```1c
    &НаСервереБезКонтекста
    Функция ОбработатьНоменклатуру(ЗНАЧ Дата, ЗНАЧ ОбрабатыватьДочерние, ЭлементНоменклатуры)
    КонецФункции
```

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

```1c
    &НаСервереБезКонтекста
    Функция ОбработатьНоменклатуру(ЗНАЧ Дата, ЗНАЧ ОбрабатыватьДочерние, ЭлементНоменклатуры)
    КонецФункции
```

Если ставить ЗНАЧ, то параметр передаётся значением, а если нет - то ссылкой. Для типов Дата, Булево и Число это может дать ещё небольшой выигрыш в трафике.
---
Как определить, когда &НаСервере, а когда &НаСервереБезКонтекста? Очень просто:
Если процедура/функция использует/изменяет реквизиты формы, то &НаСервере.
Если процедура/функция получает параметры примитивных или ссылочных типов и не использует реквизиты формы - смело &НаСервереБезКонтекста.
---
Завести домкратом автомобиль нельзя. А вы на мой вопрос ответ знаете? если нет то зачем комментарий?
---
вот хорошая статья: http://xn----1-bedvffifm4g.xn--p1ai/news/2017-03-09-how-server-call-works/
Добрый день. Есть Внешний отчет с схемой СКД. В СКД есть вычисляемое поле с выражением "УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(Магазин,Значение(Справочник.ВидыКонтактнойИнформации.ФактАдресМагазина))". Если для отчета нет "ФормыОтчета" то все работает хорошо. Если есть форма отчета и есть программное выполнение отчета то вылетает ошибка "Синтаксическая ошибка "УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъкта". Почему так?
---
При инициализации процессора компоновки указана возможность использования функций внешних модулей?
---
полный текст ошибки ?
---
При инициализации процессора компоновки указана возможность использования функций внешних модулей?
---
Спс. разрешил и взлетело
Доброго времени суток!
Конфигурация ERP 2.1. В документе заказе клиента есть доп. реквизит.

Каким образом при выборе договора контрагента изменять этот проект без записи документа?

Пробую так:

```1c
    &НаКлиенте
    Процедура ДоговорОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)

    ПроектУДоговора = ПодпискиНаСобытие.ПроектУДоговора(ВыбранноеЗначение);
    Если ПроектУДоговора <> ПустаяСсылкаДоговор() Тогда
    ДобавитьНаСервере(ПроектУДоговора);
    ЭтаФорма.ОбновитьОтображениеДанных();
    КонецЕсли;

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

    &НаСервере
    Процедура ДобавитьНаСервере(ПроектУДоговора)

    ОбъектДок = РеквизитФормыВЗначение("Объект");

    Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Проект заказа клиентов (Список заказов клиентов)");

    СтруктураДляПоиска = Новый Структура("Свойство", Свойство);

    ТекОбъект = Объект;

    ТЧ = ТекОбъект.ДополнительныеРеквизиты;

    МассивСтрок = ТЧ.НайтиСтроки(СтруктураДляПоиска);
    Для каждого Строка Из МассивСтрок Цикл
    ТЧ.Удалить(Строка);
    КонецЦикла;

    новСтрТч = ТЧ.Добавить();
    новСтрТч.Свойство = Свойство;
    новСтрТч.Значение = ПроектУДоговора;

    ЗначениеВРеквизитФормы(ОбъектДок, "Объект");

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

По сути доп реквизиты это ТЧ документа. Причем в отладчике после ЗначениеВРеквизитФормы видно что тч заполнена. НЕ могу понять, почему не отображается на форме доп. реквизит.
На самописной конфе код работает идеально.

Каким образом заполнить доп.реквизит?
---
Нашел решение сам:

```1c
    &НаСервере
    Процедура ДобавитьНаСервере(ПроектУДоговора)
    ОбъектДок = РеквизитФормыВЗначение("Объект");
    ..................................

    ЗначениеВРеквизитФормы(ОбъектДок, "Объект");
    УправлениеСвойствами.ЗаполнитьДополнительныеРеквизитыВФорме(ЭтотОбъект);
    КонецПроцедуры
```

Ох уж эта БСП-пятина!
---
Нашел решение сам:

```1c
    &НаСервере
    Процедура ДобавитьНаСервере(ПроектУДоговора)
    ОбъектДок = РеквизитФормыВЗначение("Объект");
    ..................................

    ЗначениеВРеквизитФормы(ОбъектДок, "Объект");
    УправлениеСвойствами.ЗаполнитьДополнительныеРеквизитыВФорме(ЭтотОбъект);
    КонецПроцедуры
```

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

Что имеем:
1) Создаем внешний отчет, жмем СКД, настраиваем все как нужно
2) Создаем форму отчета, флаг "использовать СКД" ставим. Появляется форма на которой все есть, но:
- нажатие на Сформировать - не перехватить. Хрен с ним - делаем свою кнопку Сформировать.
- нажатие на Настройки вываливается с ошибкой т.к. 1С пытается открыть общую форму НастройкиОтчетов, но там нужны правлиьно заполненные параметры которые не передашь потому что, правильно, нажатие на Настройки не перехватить.

Т.е. пришел к выводу, что для реализации задуманного нужно:
- убрать все стандартные кнопки, реализовать их самому
- в качестве формы для настроек взять стандартную из БСП И тоже приделать к отчету.

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

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

А как быть с кнопкой Настройки?
---
Форму настроек добавь и в ней нарисуй как надо
---
Наверное, тут варианты от конкретных требования зависят. Я делал примерно так:
1) Создавал пустую таблицу для источника внешних данных в СКД
2) Собирал все основные данные запросом СКД и соединял с внешней таблицей(на данный момент пустой, зато получал в СКД нужные поля для настройки группировок и пр.)
3) Формировал результат СКД с выгрузкой во внешнюю таблицу
4) Обрабатывал её, формируя нужные данные в таблице из п.1
5) Повторно выполнял запрос, но результат уже стандартно выводил в табличный документ. В результате этого запроса первоначально выбираемые данные уже нормально соединялись с обработанной таблицей из внешнего источника данных

Тоже извращение ещё то, но результат меня устроил
---
Собственно, я дико туплю же :)
Достаточно добавить свою форму настроек и 1С заполнит ее стандартными элементами.

Но все равно осталось непонятным, как 1С вызывает по нажатию Настройки стандартную форму из конфигурации (если свою форму настроек в отчет не добавлять).
Это как-то в механизм внешних отчетов зашито?
Добрый день. Подскажите пожалуйста
Есть документ и у него есть реквизит - ссылка на справочник
Справочник
наименование строка - 50
Реквизит1 строка - 0(неограниченной длины)
Основное представление у справочника в виде наименования
Не могу обхитрить чтобы отображение было Реквизит1, а не Наименование в форме списка этого документа - ну и в самом документе
---
У справочника создай форму выбора, а в эту форму показывай "Реквизит1", а в документе можешь при изменении реквизита (типа строка), взять "Реквизит1" у выбранного справочника.
---
У справочника создай форму выбора, а в эту форму показывай "Реквизит1", а в документе можешь при изменении реквизита (типа строка), взять "Реквизит1" у выбранного справочника.
---
Смотри в модуле менеджера процедуры:
<ОбработкаПолученияПолейПредставления>
<ОбработкаПолученияПредставления>
---
ОбработкаПолученияПолейПредставления
Эти процедуры не вижу
---
Это в 8.3 появилось, насколько знаю. До этого одни извращения с этим были
---
1с 8 не управляемые формы
---
заголовка там в колоночке нет?
Приветствую! Как в 1С 8.3 запретить несколько копий регламентного задания?
---
Регламентное задание может иметь ключ – любое прикладное значение. Ключ вводит ограничение на запуск регламентных заданий, т. к. в единицу времени среди регламентных заданий, связанных с одним и тем же объектом метаданных, может выполняться только одно регламентное задание с определенным значением ключа. Ключ позволяет группировать регламентные задания, связанные с одним и тем же объектом метаданных, по определенному прикладному признаку с тем, чтобы в рамках одной группы выполнялось не более одного регламентного задания.

Источник
---
Зайти через Администрирование - Поддержка и обслуживание - Регламентные задания, выбрать задание (двойной клик мыши) откроется карточка и снять галочку - Включено. Сохранить.
---
Регламентные задания запускаются по Ключу.

Upd: имеется в виду что нельзя запустить несколько рег заданий с одним ключом.
---
Я добавил ключ. Все равно та же ситуевина.
---
Регламентное задание может иметь ключ – любое прикладное значение. Ключ вводит ограничение на запуск регламентных заданий, т. к. в единицу времени среди регламентных заданий, связанных с одним и тем же объектом метаданных, может выполняться только одно регламентное задание с определенным значением ключа. Ключ позволяет группировать регламентные задания, связанные с одним и тем же объектом метаданных, по определенному прикладному признаку с тем, чтобы в рамках одной группы выполнялось не более одного регламентного задания.

Источник
---
никак, только на уровне кода - прописать в регламентом проверку через Менеджер фоновых заданий, если запущено не запускать
Всем привет. Допиливаю отчет "Запасы" из УНФ 1.6., который представляет собой ведомость: начальный остаток товаров, приход, расход и т.д. В отчет нужно добавить колонки "м3" (объем), которые вычисляются как количество товара * коэффициент из карточки номенклатуры. В схему компоновки добавил необходимые вычисляемые поля (см. скрин). Но почему-то высчитывается объем на начало периода, хотя количественных остатков на тот момент нет. Никак не доходит в чем дело. Подскажите плз. Прилагаю скрины - доработанный и оригинальный отчет.
---
а зачем в вычисляемых полях? допишите сразу в запросе и посмотрите какие роли установлены у оригинальных полей с количеством - там скорее всего указано, что это показатель начального остатка, конечного остатка и т.п.
---
а зачем в вычисляемых полях? допишите сразу в запросе и посмотрите какие роли установлены у оригинальных полей с количеством - там скорее всего указано, что это показатель начального остатка, конечного остатка и т.п.
---
Точно, забыл совсем про роли. Спасибо!
Добрый вечер. Конфигурацию Бухгалтерия 3.0. Хочу программно создать номенклатуру с видом "услуги". Делаю так:

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

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

```1c
    СборНоменклатура.Услуга = Истина;
```

Кроме того есть еще справочник ВидыНоменклатуры, у которого тоже есть реквизит Услуга.
Следовательно тоже нужна строчка кода

```1c
    СборНоменклатура.ВидНоменклатуры = Справочники.ВидыНоменклатуры.НайтиПоНаименованию("Улуга");
```

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

```1c
    СборНоменклатура.Услуга = Истина;
```

Кроме того есть еще справочник ВидыНоменклатуры, у которого тоже есть реквизит Услуга.
Следовательно тоже нужна строчка кода

```1c
    СборНоменклатура.ВидНоменклатуры = Справочники.ВидыНоменклатуры.НайтиПоНаименованию("Улуга");
```

При этом должен быть создан элемент справочника ВидыНомеклатуры с Наименованием "Услуга" и флажком услуга = истина