arefaste/1C_Forums huggingface dataset:
Здравствуйте, подскажите пожалуйста, как можно узнать структуру хмл файла для отправки УКД в СБИС ?
Или может быть сам файл приложите.)
---
https://www.diadoc.ru/docs/forms/ukd
https://sbis.ru/formats/docFormatCardEdo/89764/format/ ?
---
https://www.diadoc.ru/docs/forms/ukd
https://sbis.ru/formats/docFormatCardEdo/89764/format/ ?
---
Спасибо.
---
Ну дак это не для СБИСА структура.
Здравствуйте. Печатные формы Т1, Т5, Т8 формируются на основе СКД. Мне нужно в этих печатных формах получить родительный падеж фамилии сотрудника, но в СКД такая функция не предусмотрена. Тогда где мне ее можно прописать?
---
посмотрел, там же уже все прописано..в схеме посмотри вычисляемые поля, у Т1 в винительном падеже вызывается.
---
просто вызови функцию склонения
---
посмотрел, там же уже все прописано..в схеме посмотри вычисляемые поля, у Т1 в винительном падеже вызывается.
---
Да, спасибо, нашел. А как мне вывести вычисляемое поле в макет?
---
так ты параметр исправь в схеме и все. Это же обычное поле получается, только вычисленное программным путем. Или ты отдельную ВПФ делаешь ? Тогда там надо все прописывать. Ну или скачать готовую, и внести изменения.
---
Да все, разобрался спасибо
Здравствуйте. Я плохо знаю русский. Извините за этого. Я еще новичок в 1С программирование. В УТ 10.3. В форме обработку есть поле ввода как сделать что когда пользователь нажал выбор из списка отображала список значений. Код не работает. Надо изменить процедуру или код. Спасибо всем за ранее См.Рис - 1

```1c
    Процедура ПолеВвода1НачалоВыбора(Элемент, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | ДоговорыКонтрагентов.Ссылка
    |ИЗ
    | Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
    |ГДЕ
    | ДоговорыКонтрагентов.Владелец = &Владелец";

    Запрос.УстановитьПараметр("Владелец", Контрагент);
    Результат = Запрос.Выполнить();

    Список = Новый СписокЗначений;
    Список.ЗагрузитьЗначения(Результат.Выгрузить().ВыгрузитьКолонку("Ссылка"));
    ЭлементыФормы.ПолеВвода1.СписокВыбора.Добавить(Список);

    КонецПроцедуры
```
---
Также можно обойтись без программирования, если сделать настройки связей. В реквизите формы "Договор" установите "Связи параметров выбора", чтобы Объект.Контрагент устанавливался равным Договор.Владелец.
---
Вы пытаетесь в элементы списка выбора добавить элемент типа список значений. Так неправильно. Попробуйте сразу загрузить в список выбора массив ссылок договоров.

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

чтоб это пустое поле всегда выводилось при выборе параметров - уточните
---
то-есть чтоб там, где дата 31.12.1899, попадала в любой период
---
в запросе во временную таблицу отбирайте все записи где дата 31.12.1899. Затем эту таблицу объединяйте с "обычным" запросом
---
Спасибо
Добрый день ребят,я только учусь и плохо разбираюсь еще..подскажите пожалуйста,вот есть обработка для Получения данных из спецификации Компас в 1С,открыл ее,выбрал копосовский файл,она прочитала компосовский файл,вот что в общем получилось не пойму что делать дальше для дальнейшего вснесения в 1с спецификации,кто знает подскажите пожалуйста!
---
там обработка пустая.
Ничего нет.
Только файл парсит и в таблицу значений выводит.
Пиши свою обработку на основании этой.
---
Если нажать "Ок" на второй картинке, что произойдет?
---
ничего не просходит,окно просто это закрывается и все..вот сама обработка
---
я поэтому забор и словил...не пойму как нужно сделать что бы пошло заполнение в спецификацию 1с..
---
там обработка пустая.
Ничего нет.
Только файл парсит и в таблицу значений выводит.
Пиши свою обработку на основании этой.
---
понял спасибо,но для меня пока это примерно невыполнимо...вы можете может литературу какую нибудь подсказать или чт то типа того
---
1С:Предприятие 8.3. Практическое пособие разработчика. Примеры и типовые приемы
---
а служебное сообщение остается
---
да толку от него.
Обработка пустая.
Ошибка. Переменная не определена. Хотя она там есть. (Новичок,может где ошибка глупая)
---
Всё работает. Я в макете не указал тип заполнения.
---
набросал быстро в конструкторе код и вывел его на форму, проверил код рабочий.

 Запрос = Новый запрос;
 Запрос.Текст = //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
 // Данный фрагмент построен конструктором.
 // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

 Макет = ВнешниеОтчеты.ВнешнийОтчет1.ПолучитьМакет("Макет1");
 Запрос = Новый Запрос;
 Запрос.Текст =
  "ВЫБРАТЬ ПЕРВЫЕ 10
  | Номенклатура.Ссылка,
  | Номенклатура.Представление,
  | Номенклатура.Наименование
  |ИЗ
  | Справочник.Номенклатура КАК Номенклатура";

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

 ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
 ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
 ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
 ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
 ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");

 ТабДок.Очистить();
 ТабДок.Вывести(ОбластьЗаголовок);
 ТабДок.Вывести(ОбластьШапкаТаблицы);
 ТабДок.НачатьАвтогруппировкуСтрок();

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

 Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
  ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
  ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень());
 КонецЦикла;

 ТабДок.ЗакончитьАвтогруппировкуСтрок();
 ТабДок.Вывести(ОбластьПодвалТаблицы);
 ТабДок.Вывести(ОбластьПодвал);

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

```1c
    Макет.Показать(Договор)
```

Этот параметр "Договор" он откуда вырос у вас?

ну это если в общих чертах
---
И где по твоему макет?
---
Сглупил . Не то написал. Сейчас всё проверил. Ошибка в последней строке.
Процедура ОсновныеДействияФормыПечать(Кнопка)
 ТабДок = Новый ТабличныйДокумент;
    Макет = ПолучитьМакет("Макет");

 Макет.Параметры.ДатаДоговора = Формат(Дата, "ДФ=dd.MM.yyyy");
 Макет.Параметры.НомерДоговора = Номер;
 Макет.Параметры.Сотрудник = Сотрудник;

      ТабДок.Вывести(Макет);
ТабДок.Показать("Трудовой договор"+ сотрудник);
КонецПроцедуры
---
Код заработал. Но при нажатии на кнопку печать ошибка . Переменная датадоговора не найдена. Сейчас буду искать проблему.
---
Всё работает. Я в макете не указал тип заполнения.
Здравствуйте!

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

Подскажите, пожалуйста, в чём может быть дело?

```1c
    &НаСервере
    Процедура УстановитьОтборНаСервере()

    Список.Отбор.Элементы.Очистить();

    Список.УсловноеОформление.Элементы.Очистить();

    РесурсыПоВиду = РесурсыПоВидуРесурса(ОтборВидРесурса);

    Если Не РесурсыПоВиду = Неопределено Тогда

    ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));

    ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка");
    ЭлементОтбора.ПравоеЗначение = РесурсыПоВиду;
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
    ЭлементОтбора.Использование = Истина;

    КонецЕсли;

    Если ЗначениеЗаполнено(ОтборПериод.ДатаНачала) И ЗначениеЗаполнено(ОтборПериод.ДатаОкончания) Тогда

    РесурсыЗанятые = ЗанятыеРесурсы(ОтборПериод.ДатаНачала, ОтборПериод.ДатаОкончания);

    Если Не РесурсыЗанятые = Неопределено Тогда

    ЭлементОформления = Список.УсловноеОформление.Элементы.Добавить();

    ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));

    ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка");
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВСписке;
    ЭлементОтбора.ПравоеЗначение = РесурсыЗанятые;

    ЭлементОформления.Использование = Истина;
    ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", Новый Цвет(205, 255, 204));

    КонецЕсли;

    КонецЕсли;

    КонецПроцедуры
```
---
Идея была хорошая, спасибо. Но, к сожалению, не помогло.

Попробовал устанавливать отбор и оформление в разных серверных вызовах - так работает!
---
Может платформа сбоит?
---
Может быть баг платформы. И то и то поле ссылка все-таки. Попробуйте сделать костыль добавлением дубликата ссылки с другим именем в запрос и использовать его для отбора.
---
Идея была хорошая, спасибо. Но, к сожалению, не помогло.

Попробовал устанавливать отбор и оформление в разных серверных вызовах - так работает!
Здравствуйте.
Нигде не могу найти ссылку на обработку которая шифрует данные базы.
Была где-то от гилева, но не могу найти.
Например отдать базу программисту, которому ещё нельзя доверять. Типа что-то было непонятно что за данные в базе.
Заранее спасибо.
---
Нигде не могу найти ссылку на обработку которая шифрует данные базы. Потому что шифрование - это другая задача, предполагающая расшифровку.

В вашем случае расшифровка не предполагается.
Например отдать базу программисту, которому ещё нельзя доверять. Типа что-то было непонятно что за данные в базе. Это не шифрование, а обфускация, и по такому запросу ссылки легко находятся, например:
https://infostart.ru/public/399801/
https://infostart.ru/public/178904/
---
Нигде не могу найти ссылку на обработку которая шифрует данные базы. Потому что шифрование - это другая задача, предполагающая расшифровку.

В вашем случае расшифровка не предполагается.
Например отдать базу программисту, которому ещё нельзя доверять. Типа что-то было непонятно что за данные в базе. Это не шифрование, а обфускация, и по такому запросу ссылки легко находятся, например:
https://infostart.ru/public/399801/
https://infostart.ru/public/178904/
---
спасибо! Вы правы.
Столкнулся с проблемой как сгруппировать поля - несколько групп на одном уровне. До этого нужна была одна группировка - проблем не было. Но сейчас надо более одной. Картинки ниже все наглядно расскажут.

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

2) Когда удаляю названия групп, то эти названия также удаляются и из шапки, НО рушится структура - СКД включает свою оптимизацию (названия групп идентичны - они пусты), и рушит всю структуру! Как мне ей сказать, чтобы она этим не занималась!?

Куда ткнуть? Что сделать?
---
Если так, тогда вот так

http://prntscr.com/npncj5
http://prntscr.com/npncoa
---
А пробелы вместо слов? Один пробел, два, три, четыре
---
Не помогает. Система отображает их, но без заголовков - см. рисунок с "НеДляОтображения1" и "НеДляОтображения2". Получается пустая клетка сверху и снизу, что тоже не айс.
---
Возможно, условное оформление, белым по белому.
---
Можно проще. Поставить галочку на текст.
Но тут другой случай. Отбора на Группу выбранных полей нет. Оно жеж везде пусто выведет. Где надо и где не надо. А пробелы то работают
---
Так? http://prntscr.com/npncby
---
Если так, тогда вот так

http://prntscr.com/npncj5
http://prntscr.com/npncoa
---
Да, я так пробовал. Это вариант. Только цеплять надо на первую группировку, с остальными не получается.

И еще, если пользователь доберется до настроек, удалит это дерево и наворотит что-то свое, то тогда как? Например группировки поменяет местами, или вместо всех их создаст свою? Есть какой нибудь вариант без макетов?
---
К сожалению, без макетов вариант предложить не смогу, но для решения проблем с пользовательскими группировками можно отключить возможность настройки структуры отчета.
Всем привет, необходимо реализовать отчет как на картинке без использования СКД, подскажите, пожалуйста, как это можно сделать?
Название столбцов должно соответствовать строкам.
---
Извините, если мой ответ Вам покажется занудным. Я рекомендую Вам заглянуть в книгу "Язык запросов 1С:Предприятия 8". Во второй главе есть раздел "Создание кросс-отчета" (примерно 194 стр.), где очень хорошо описывается принцип разработки отчета нужного Вам вида.
---
Извините, если мой ответ Вам покажется занудным. Я рекомендую Вам заглянуть в книгу "Язык запросов 1С:Предприятия 8". Во второй главе есть раздел "Создание кросс-отчета" (примерно 194 стр.), где очень хорошо описывается принцип разработки отчета нужного Вам вида.
Здравствуйте. Я плохо знаю русский. Извините за этого. Я еще новичок в 1С программирование. В УТ 10.3. Написал отчет с помощью СКД. В отчете есть два параметра - Склад и Номенклатура. Если пользователь заполнит только номенклатуру тогда программ выдают ошибку но если будит обратном тогда ничего не будит и отчет сформироваются. Где ошибка? Спасибо всем за ранее. Код такой -

```1c
    ВЫБРАТЬ
    ОстаткиПоСериямОстаткиИОбороты.Серия,
    ОстаткиПоСериямОстаткиИОбороты.Номенклатура,
    ОстаткиПоСериямОстаткиИОбороты.Склад,
    СУММА(ОстаткиПоСериямОстаткиИОбороты.КоличествоНачальныйОстаток) КАК НачальныйОстаток,
    СУММА(ОстаткиПоСериямОстаткиИОбороты.КоличествоКонечныйОстаток) КАК КонечныйОстаток,
    СУММА(ОстаткиПоСериямОстаткиИОбороты.КоличествоПриход) КАК Приход,
    СУММА(ОстаткиПоСериямОстаткиИОбороты.КоличествоРасход) КАК Расход,
    ОстаткиПоСериямОстаткиИОбороты.Регистратор
    ИЗ
    РегистрНакопления.ОстаткиПоСериям.ОстаткиИОбороты({(&НачалоПериода)}, {(&КонецПериода)}, Авто, , {(Склад = &Склад ИЛИ Номенклатура = &Номенклатура)}) КАК ОстаткиПоСериямОстаткиИОбороты

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

 РегистрНакопления.ОстаткиПоСериям.ОстаткиИОбороты(
{(&НачалоПериода)}, {(&КонецПериода)}, Авто, ,
{
  (
ВЫБОР
КОГДА &Склад<> ЗНАЧЕНИЕ(Справочник.Склад.ПустаяСсылка)
ТОГДА Склад= &Склад
ИНАЧЕ ИСТИНА
КОНЕЦ

ИЛИ
ВЫБОР
КОГДА &Номенклатура <> ЗНАЧЕНИЕ(Справочник.Номенклатура .ПустаяСсылка)
ТОГДА Номенклатура = &Номенклатура
ИНАЧЕ ИСТИНА
КОНЕЦ
 )
}
)

всм. в параметрах регистра в консоли
---
точно не поможет. Параметрам не задано начальное значение, следовательно там не ПустаяСсылка.
Если указать начальное заполнение ПустаяСсылка, тогда и городить через Выбор не потребуется.
---
вы абсолютно правы начальное значение должно быть. это у меня из запроса консоли.
обычно так и оставляю в уже в модуле объекта, прописываю первичное значение.
Доброго всем дня.

Есть 2 формы, обе формы обращаются к модулю объекта в котором есть следующий код:
```1c
    ХранилищеОбщихНастроек.Загрузить(КлючОбъекта, КлючНастройки,,ТекПользователь);
```

Так вот с одной формы вызов экспортной процедуры объекта верно возвращает МАССИВ, а с другой формы постоянно Неопределенно. Куда смотреть, что делать.

P.S.: параметры одинаковые, т.к. они определены в модуле объекта.
---
Разобрался. Но почему никакого исключения и ошибки не возникает я так и не понял. При сохранении строка "ТекПользователь", возможно не корректная для данного метода, но при выборке всех настроек я обнаружил что моя настройка настройка сохраняется с пустым полем Пользователь.
---
КлючОбъекта

Что в этой переменной?
---
тип Строка, если быть точным "ЗагрузкаИзExcel"
---
Не смог воспроизвести

Попробуй ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить
---
Стало лучше. Если я в ручную обращаюсь к процедуре загрузке из формы №1, после сохранения настроек в форме №2 - то работает.
Но при запуске внешней обработки настройки теряются. Они живут в рамках сеанса?
---
Нет, не в рамках сеанса. Разделяется лишь по имени пользователя
---
Капец. И что делать... Свое хранилище я создать не могу, нужно сделать не снимая конфу с полной поддержки. А при перезапуске внешней обработки обращения к "ХранилищеОбщихНастроек" возвращают неопределенно.
---
Разобрался. Но почему никакого исключения и ошибки не возникает я так и не понял. При сохранении строка "ТекПользователь", возможно не корректная для данного метода, но при выборке всех настроек я обнаружил что моя настройка настройка сохраняется с пустым полем Пользователь.
---
Чудно)
---
Короче пользователь = ИмяПользователя() либо вообще не заполняется.
---
Приведи весь код, который вызывается или выложи обработку. Должно работать
Сделал Общую форму КассаПоУмолчанию - она должна устанавливать в настройках пользователя ОсновнуюКассу

Перем Кассы;

Процедура ПриОткрытии()

 Кассы = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(ПараметрыСеанса.ТекущийПользователь, "ОсновнаяКасса");
    УстановитьПараметры();
КонецПроцедуры

Процедура КассыПриИзменении(Элемент)

  УстановитьПараметры()

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

Процедура ОсновныеДействияФормыОК(Кнопка)

 ПараметрыСеанса.Кассы = Кассы; // - сбоит на этой строке
 Закрыть();
КонецПроцедуры

Процедура ОсновныеДействияФормыОтмена(Кнопка)
 ПараметрыСеанса.Кассы = Справочники.Кассы.ПустаяСсылка();
  Закрыть();
КонецПроцедуры

Процедура УстановитьПараметры()
 Кассы = Кассы;

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

Помогите зеленому
---
так же как вы добавляли форму, через конфигуратор заходите и добавляете параметр сеанса.
---
добавил права все получилось
---
Процедура УстановитьПараметры()
Кассы = Кассы;

КонецПроцедуры
   - это зачем ?
---
У вас добавлен в "параметры сеанса" элемент кассы? или это объявлена только переменная?
---
только переменная
---
+ и еще проверьте права на параметре сеанса
---
я к чем это клоню, есть "модуль сеанса" и есть процедура "УстановкаПараметровСеанса" типовая и есть процедура УстановитьЗначениеПараметраСеанса() не легче через них?
---
спасибо огромное
---
вот добавьте параметр сеанса, вы же пытаетесь в него записать.
---
а как это делается?
---
так же как вы добавляли форму, через конфигуратор заходите и добавляете параметр сеанса.
---
добавил права все получилось
---
все спасибо огромное все получилось )))
Есть обработка универсального обмена, практически типовая, но с 2 экспортными процедурами/функциями. Эти функции используются в обработчиках после загрузки объектов (КД 2.0). Есть потребность вместо этой обработки сделать расширение для Бухгалтерии предприятия 3.0. Все сделал, но при загрузке данных выдается сообщение, что функции нет. Хотя при открытии обработки эта функция успешно выдает результат.

В результате эксперимента выяснил, что если вместо РежимЗагрузкиДанныхВИнформационнуюБазу() написать ЭтотОбъект.РежимЗагрузкиДанныхВИнформационнуюБазу() то функция видна и возвращает правильный результат. Переписывать правила не хочется (много мест, где в типовых правилах прописана эта функция). Хочется разобраться, почему, если использовать доработанную обработку функция прекрасно видна, а когда добавлена через расширения, то видна только через ЭтотОбъект.РежимЗагрузкиДанныхВИнформационнуюБазу() . Хотя, например, добавленные реквизиты видны и по идентификатору ДобавленныйРеквизит, так и через ЭтотОбъект.ДобавленныйРеквизит.

Если нужна дополнительная информация, то спрашивайте, напишу, пришлю скриншоты.

Вложил обработку и расширение для типовой бухгалтерии.
---
Сам воспроизвел. Видимо при вызове Выполнить() контекст разный получается..
Добавьте полностью процедуру ПрочитатьОбъект() в расширение, ничего в ней не меняя.
У меня сработало.
---
Платформа какая?
8.3.13.1809, БП 3.0.70.41, ошибки нет, появляется сообщение Да.
Правда, почему-то, 2 раза.

P.S. На 8.3.12.1714 и 8.3.14.1694 тоже ошибки нет.
---
Платформа 8.3.14, но в БП все равно выставлен режим совместимости.
Сообщение показывается, 2 раза при открытии. Но при выполении самой загрузки функция без "ЭтотОбъект." не видна. Выдается сообщение об ошибке.
Могу вложить загружаемый файл для экспериментов, если кто-то хочет увидеть ситуацию в отладчике. Я пока ни одного логичного объяснения не вижу.
---
Давайте файл, попробуем подумать.
---
Сам воспроизвел. Видимо при вызове Выполнить() контекст разный получается..
Добавьте полностью процедуру ПрочитатьОбъект() в расширение, ничего в ней не меняя.
У меня сработало.
---
Интересное решение, мне нравится. Вечером попробую.
Доброе время суток! Помогите, пожалуйста. Есть строковое представление справочника, к примеру "справочники.номенклатура" и таких может быть много. Хочу написать функцию, в которую я бы передавала 2 значения, а именно ("справочники.номенклатура", "БРЮКИ") (брюки - это наименование записи справочника). И чтобы функция делала поиск по наименованию, если не находит то создает новый элемент.
---
```1c
    СпрСсылка=Неопределено;
    ИмяСправочника="Справочники.Номенклатура";
    Наименование="Брюки";
    Выполнить("СпрСсылка="+ИмяСправочника+".НайтиПоНаименованию("+Наименование+")");
    Если СпрСсылка=Неопределено Тогда
    Выполнить("НовЭлемент="+ИмяСправочника+".СоздатьЭлемент()");
    НовЭлемент.Наименование=Наименование;
    НовЭлемент.Записать();
    КонецЕсли;
```
---
```1c
    СпрСсылка=Неопределено;
    ИмяСправочника="Справочники.Номенклатура";
    Наименование="Брюки";
    Выполнить("СпрСсылка="+ИмяСправочника+".НайтиПоНаименованию("+Наименование+")");
    Если СпрСсылка=Неопределено Тогда
    Выполнить("НовЭлемент="+ИмяСправочника+".СоздатьЭлемент()");
    НовЭлемент.Наименование=Наименование;
    НовЭлемент.Записать();
    КонецЕсли;
```
---
Большое спасибо! Забываю про метод Выполнить()
---
А ведь ТС сказала, что "хочу написать функцию", а не "хочу почитать функцию")))
---
Да хватит тебе) А вообще хватило бы и одного слова: Выполнить()
---
Так можно
Выполнить("СпрСсылка="+ИмяСправочника+".НайтиПоНаименованию("+Наименование+")");
(1)Но так лучше

```1c
    ИмяСправочника = "Номенклатура";
    Ссылка = Справочники[ИмяСправочника].НайтиПоКоду("00001");
```