arefaste/1C_Forums huggingface dataset:
Добавили реквизиты на форму документа РеализацияТоваровУслуг .

```1c
    &НаСервере
    Процедура Расш2_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)

    НовыйЭлемент = Элементы.Вставить("Расш2_Наименование", Тип("ПолеФормы"),Элементы.Товары, Элементы.ТоварыНоменклатура);
    НовыйЭлемент.Заголовок = "Наименование_Клиента";
    НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
    НовыйЭлемент.ПутьКДанным = "Объект.Товары.Расш2_Наименование";

    НовыйЭлемент = Элементы.Вставить("Расш2_НаименованиеКлиента", Тип("ПолеФормы"), Этаформа);
    НовыйЭлемент.Заголовок = "Расш2_НаименованиеКлиента_Шапка";
    НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
    НовыйЭлемент.ПутьКДанным = "Объект.Расш2_НаименованиеКлиента";

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

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

Создаю внешнюю обработку, не могу понять/найти, как обратится из обработки к реквизиту справочника. Если конкретно, то Справочники.Организации.ИНН.
Много ифнормации находила, но так и не поняла :(

Только учусь, поэтому не ругаемся. Я очень стараюсь :)
---
обратиться к значению реквизита справочника можно только через ссылку или объект элемента справочника.
Т.е. сначала получаете ссылку на элемент справочника. И через полученную ссылку можно обратиться к нужному реквизиту.
Для Тонкого клиента получение возможно только на сервере.
---
обратиться к значению реквизита справочника можно только через ссылку или объект элемента справочника.
Т.е. сначала получаете ссылку на элемент справочника. И через полученную ссылку можно обратиться к нужному реквизиту.
Для Тонкого клиента получение возможно только на сервере.
---
Подробнее опиши задачу. Элемент справочника можно получить через СКД(в том числе и из другой базы), можно "в лоб" через НайтиПо..., можно через выборку с параметром отбора, можно на форме обработки, можно в модуле объекта обработки.
---
https://its.1c.ru/db/metod8dev/content/4145/hdoc
если в конфигурации используется БСП, то возможно использовать
ОбщегоНазначения.ЗначениеРеквизитаОбъекта()
---
Спасибо огромное всем :)
Коллеги, приветствую!
Подскажите, какие варианты для уведомлений о выходящих обновления конфигураций 1С существует? В ИТС не нашел возможности подписки на уведомления.
---
Новости публикуются тут - https://releases.1c.ru/news
Можно подписаться на RSS - https://news.webits.1c.ru/news/updates/rss

Подробнее на хабре на эту тему

https://habr.com/ru/post/550642/
https://habr.com/ru/post/551678/
https://habr.com/ru/post/551836/

Во второй ссылке как раз настраивается отправка письма на почту при выходе новости по КА.
---
Новости публикуются тут - https://releases.1c.ru/news
Можно подписаться на RSS - https://news.webits.1c.ru/news/updates/rss

Подробнее на хабре на эту тему

https://habr.com/ru/post/550642/
https://habr.com/ru/post/551678/
https://habr.com/ru/post/551836/

Во второй ссылке как раз настраивается отправка письма на почту при выходе новости по КА.
---
Можно подписаться на RSS - https://news.webits.1c.ru/news/updates/rss

самый адекватный вариант
---
Во второй ссылке как раз настраивается отправка письма на почту при выходе новости по КА.
Спасибо!
---
Вот какая-то старая разработочка
https://infostart.ru/public/197159/
---
спасибо, для КА подходит? В описании отсутствует.
---
Не знаю, старая уже разработочка, лучше у автора спрашивать.
Мне нужно чтобы событие отрабатывало только тогда, когда меняется значение с не с пустого.
То есть надо как то проверить пустое ли значение до правки.
Как это проверить?
---
Если объект базы, то можно обратится к реквизиту по ссылке.
Если реквизит на форме, держать ещё одну переменную/реквизит формы. СтароеЗначениеРеквизита... При изменении его изменять программно
---
вас конкретно какой вопрос мучает? Как проверить на пустое значение или как понять какое значение было до правки?
---
Если объект базы, то можно обратится к реквизиту по ссылке.
Если реквизит на форме, держать ещё одну переменную/реквизит формы. СтароеЗначениеРеквизита... При изменении его изменять программно
---
Реквизит на форме, объект еще не записан и в зависимости от предыдущего значение требуется выполнять какие - либо действия.

(СтароеЗначениеРеквизита...) видать так и надо

Я думал есть решение поприятней
---
до
---
объект то какой? Документ справочник?
---
Документ
---
См. ЗначениеЗаполнено()
---
в событии
```1c
    &НаСервере
    Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
    Если ТекущийОбъект.Ссылка.Реквизит<>ТекущийОбъект.Реквизит Тогда
    //есть изменение
    конецЕсли
    КонецПроцедуры
```
можно в любом другом месте,
через Объект.Ссылка.Реквизит - читаем содержимое реквизита в базе (на сервере!)
Объект.Реквизит - сравниваем с содерживым на экране (на форме)
Добавили реквизит на форму.

```1c
    НовыйЭлемент = Элементы.Вставить("Расш2_Наименование", Тип("ПолеФормы"),Элементы.Товары, Элементы.ТоварыНоменклатура);
    НовыйЭлемент.Заголовок = "Наименование_Клиента";
    НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
    НовыйЭлемент.ПутьКДанным = "Объект.Товары.Расш2_Наименование";
```

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

Пример наименования которое нужно подправить - QQ图片212821037
Должно стать QQ212821037
---
Можно проще:

```1c
    ДопустимыеСимволы = "0123456789AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxY­yZz";

    ЛишниеСимволы = СтрСоединить(СтрРазделить(ИсходнаяСтрока,ДопустимыеСимволы));

    ИтоговаяСтрока = СтрСоединить(СтрРазделить(ИсходнаяСтрока,ЛишниеСимволы));
```
---
кроме русских, английских и цифрДиапазоны кодов символов перечисленных наборов знаете? Если да, то посимвольно перебираете исходную строку, если код символа попадает в один из диапазонов - добавляете символ в результирующую строку, если не попадает - отбрасываете.

Примеры для одних только цифр, но можно взять за основу: https://forum.infostart.ru/forum9/topic114710/
---
если есть возможность использовать регулярки, то вот пример:

```1c
    Результат = ";
    RegExp = Новый COMОбъект("VBScript.RegExp");
    RegExp.Global = True;
    RegExp.IgnoreCase = True;
    RegExp.Pattern = "[а-яёa-z0-9]+";
    РезультатАнализаСтроки = RegExp.Execute(ИсходнаяСтрока);
    Для Каждого ПодходящийЭлемент ИЗ РезультатАнализаСтроки Цикл
    Результат = Результат + ПодходящийЭлемент.Value;
    КонецЦикла;
```
---
Колхозно, но работает (если в строке нет запятых точек и прочих символов, которые при желании можно добавить в алфавит)

ПолученнаяСтрока = "";
Алфавиты = Новый Массив();
 Алфавиты.Добавить(СтрРазделить("0,1,2,3,4,5,6,7,8,9,A,a,B,b,C,c,D,d,E,e,F,f,G,g,H,h,I,i,J,j,K,k,L,l,M,m,N,n,O,o,P,p,Q,q,R,r,S,s,T,t,U,u,V,v,W,w,X,x,Y,y,Z,z", ","));

Для Шаг=1 По СтрДлина(ИсходнаяСтрока) Цикл
Если Алфавиты[0].Найти(Сред(ИсходнаяСтрока,Шаг,1)) <> Неопределено Тогда
 ПолученнаяСтрока = ПолученнаяСтрока + Сред(ИсходнаяСтрока,Шаг,1)
КонецЕсли;
КонецЦикла;
---
Можно проще:

```1c
    ДопустимыеСимволы = "0123456789AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxY­yZz";

    ЛишниеСимволы = СтрСоединить(СтрРазделить(ИсходнаяСтрока,ДопустимыеСимволы));

    ИтоговаяСтрока = СтрСоединить(СтрРазделить(ИсходнаяСтрока,ЛишниеСимволы));
```
---
Хм, а я думал СтрРазделить работает немножко по другому... Ну если соединить 2 и 3 строки получится максимально лаконично
---
при разделении, лучше сбрасывать флаг "ВключатьПустые" (параметр такой)
это значительно ускорит работу, если особенно если строка очень длинная.
---
(3)

Спасибо за решение.
---
Может символы значащие, 图 -картина 片 - часть, кусок (google сказал)
Всем привет. Я тут проходил стажировку в одной компании по методичке из радченко и после 14того занятия мне нужно было решить задачку, и я ее провалил, потому что получил не то что нужно. Помогите разобраться как эту задачу решить правильно новичку. Сама задача:

Необходимо доработать конфигурацию так, чтобы обеспечить расчет вознаграждения мастеру за оказанные им услуги при проведении документа «Оказание услуг». Вознаграждение высчитывается как процент от общей суммы, предоставленных по данному документу услуг (без учёта проданных товаров) и составляет:
5% сумма меньше 1 000 руб.
10% сумма от 1 000 до 5 000 руб.
15% сумма больше 5 000 руб.
Требуется разработать структуру данных для хранения накопленного вознаграждения.
Разработать отчет, позволяющий получить общие суммы вознаграждений по каждому мастеру за произвольно выбранный период.
Пример отчета:
Период: 01.01.2013 – 15.05.2013
Мастер Сумма
Иванов Иван 1000
Петров Пётр 1500

Как в обработчике посчитать вознаграждение мастеру за оказанные им услуги при проведении документа Оказание услуг? Ниже мой код:

```1c
    // Регистр Вознаграждения
    Сумма=0;
    Если ВыборкаДетальныеЗаписи.СуммаВДокументе < 1000 Тогда
    Сумма=ВыборкаДетальныеЗаписи.СуммаВДокументе*0.05;
    ИначеЕсли ВыборкаДетальныеЗаписи.СуммаВДокументе >= 1000 И ВыборкаДетальныеЗаписи.СуммаВДокументе <= 5000 Тогда
    Сумма=ВыборкаДетальныеЗаписи.СуммаВДокументе*0.1;
    Иначе
    Сумма=ВыборкаДетальныеЗаписи.СуммаВДокументе*0.15;
    КонецЕсли;
    Движение = Движения.Вознаграждения.Добавить();
    Движение.Период = Дата;
    Движение.Мастер = Мастер;
    Движение.Сумма = ВыборкаДетальныеЗаписи.СуммаВДокументе;
```

И базу мою можно посмотреть в прикрепленном файле
---
```1c
    Движение.Сумма = Сумма;
```
---
Ну вознаграждение посчитано верно. Но в регистр Вы записываете зачем-то сумму самого документа, а не вознаграждения.

```1c
    Движение.Сумма = ВыборкаДетальныеЗаписи.СуммаВДокументе;
```
 вот тут
---
Ну вознаграждение посчитано верно. Но в регистр Вы записываете зачем-то сумму самого документа, а не вознаграждения.

```1c
    Движение.Сумма = ВыборкаДетальныеЗаписи.СуммаВДокументе;
```
 вот тут
---
вознаграждения так, а как мне вознаграждения прописать? я так понимаю для него в поле запроса нужно указать?
---
```1c
    Движение.Сумма = Сумма;
```
Всем привет :)
подскажите плиз, ранее для проверки "Пустого табличного документа" использовал такую проверку

```1c
    Если ТабДокумент.Области.Количество()>0 Тогда
```

Сейчас столкнулся с проблемой, при возврате ТабДок, области всегда пустые, и количество() равно нулю, но при этом если есть данные, то печатная форма выводиться, а если нет данных пишет "печатная форма не доступна"
вот часть кода

```1c
    //////////// работаем
    &НаКлиенте
    Процедура Оперативность(Команда)
    ОчиститьСообщения();
    ТабДок = ПечатьНаСервере();
    Заголовок = "Оперативность" ;
    КоллекцияПечатныхФорм = УправлениеПечатьюКлиент.НоваяКоллекцияПечатныхФорм("Макет");
    ПечатнаяФорма = УправлениеПечатьюКлиент.ОписаниеПечатнойФормы(КоллекцияПечатныхФорм, "Макет");
    ПечатнаяФорма.ТабличныйДокумент = ТабДок;
    КлючУникальности = Строка(Новый УникальныйИдентификатор);
    ПараметрыОткрытия = Новый
    Структура("ИмяМенеджераПечати,ИменаМакетов,ПараметрКоманды,ПараметрыПечати");
    ПараметрыОткрытия.ПараметрКоманды = Новый Массив;
    ПараметрыОткрытия.ПараметрыПечати = Новый Структура;
    ПараметрыОткрытия.Вставить("КоллекцияПечатныхФорм", КоллекцияПечатныхФорм);
    ПараметрыОткрытия.ПараметрыПечати.Вставить("ЗаголовокФормы", Заголовок);
    ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия, ВладелецФормы, КлючУникальности);
    КонецПроцедуры
    ........................................
    &НаСервере
    Функция ПечатьНаСервере();
    ТабДокумент = Новый ТабличныйДокумент;
    ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_Справка_Оперативность";
    ТабДокумент.АвтоМасштаб = Истина;
    ..
    ..
    ..
    ..
    ..
    Возврат ТабДокумент ;
    КонецФункции
```
---
А ТабДокумент.ВысотаТаблицы (вроде так)
---
А ТабДокумент.ВысотаТаблицы (вроде так)
---
Проверить значение в конкретной ячейке. Бывает и у пустых табличных документов ВысотаТаблицы не нулевая
---
Пример такого пустого табличного документа - в студию!
---
Пожалуйста. В УФ определен ТабличныйДокумент, но не заполнен - см.картинку. Если в отладчике посмотреть значение ВысотаТаблицы то оно равно 210.
Вот такой код работает правильно:

&НаСервере
Функция ПроверкаЗаполненияТабличногоДокумента()

 Область = Таб.ПолучитьОбласть("R1C4"); // Текст "Прайс-лист"
 Возврат СтрДлина(Область.ТекущаяОбласть.Текст);

КонецФункции
В запросе, на котором основывается отчёт наСКД, сделал периодичность "Регистратор":

Почему при этом нельзя расшифровать строчку договора до регистратора?
---
Расшифровка бывает у группировок, а у вас детальные записи, замените детальные записи на группировку по контрагенту и договору и получите что хотите.
P.S. для детальных записей попробуйте щелкать на ресурсы(т.е. на суммы), а не на обычные поля.
---
Потому что в полях самого запроса должен присутствовать регистратор
---
Сделал.
Присутствует:

Но расшифровка не появилась:
---
Регистратор и в настройках отчёта есть, но его нет ни в отчёте, ни в возможностях расшифровки:
---
Текущая ситуация такая:
- если в настройках отчёта выбрать регистратор, то он появляется отдельной колонкой
- если в настройках отчёта не выбрать регистратор, то его отдельной колонкой нет

А мне надо, чтобы его отдельной колонкой не было, но при необходимости можно было конкретный договор расшифровать по регистратору (поступлениям, реализациям, оплатам).
---
А какая у регистратора роль?
---
Что в данном контексте означает "Роль"?
Мне надо, чтобы можно было посмотреть, какие по контрагенту в выбранном периоде были документы (поступления, реализации).
---
Что в данном контексте означает "Роль"?
На первом скриншоте есть колонка "роль".
---
Можно добавить "Обязательное".
---
Возможность расшифровки не появилась:
---
Расшифровка бывает у группировок, а у вас детальные записи, замените детальные записи на группировку по контрагенту и договору и получите что хотите.
P.S. для детальных записей попробуйте щелкать на ресурсы(т.е. на суммы), а не на обычные поля.
---
Да, так взлетело:

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

Набор данных:

Ресурсы:

Настройки:
---
Если все роли у полей установлены, попробуйте добавить в выборку ПериодСекунда
---
Ну или здесь почитайте: https://its.1c.ru/db/metod8dev/content/3093/hdoc
---
Почитал. Сделал.
Вроде итоги стали правильными. Только теперь не даёт расшифровать по регистратору.
Наборы данных:

Настройки:

При формировании отчёта даёт ошибку "Поле не найдено "Регистратор"":
Здравствуйте. Суть задачи состоит в том, чтобы по строке определить причастность к справочнику, перечислению в табличной части и передать полное имя справочника, перечисления. У меня получилось сделать это в шапке. А как это сделать в табличной части не понимаю. Пробовал варианты, которые приходили в голову, но ничего успешного не вышло. Скрины приложил как я сделал в шапке и как пытаюсь сделать с табличной частью
---
Как думаешь, есть разница между

```1c
    СтрокаТабличнойЧасти[РеквизитТабличнойЧасти.Имя]
```
 и
```1c
    ДокументВыгрузки[РеквизитТабличнойЧасти.Имя]
```
 ?
---
Как думаешь, есть разница между

```1c
    СтрокаТабличнойЧасти[РеквизитТабличнойЧасти.Имя]
```
 и
```1c
    ДокументВыгрузки[РеквизитТабличнойЧасти.Имя]
```
 ?
---
Разница есть. Спасибо большое)
Добрый день
Пытаюсь автоматизировать один из бизнес-процессов в компании, вследствие чего ищу способ добавления набора записей в Регистр Бухгалтерии Хозрасчётный через OData. Если с обычными данными из справочников проблем не возникает, то при попытке отправить POST запрос на добавление новой записи получаю

```1c
    {
    "odata.error": {
    "code": "-1",
    "message": {
    "lang": "ru",
    "value": "Произошла внутренняя ошибка OData сервиса. Дополнительные сведения можно найти в технологическом журнале."
    }
    }
    }
```

Запрос направляю в odata/standard.odata/AccountingRegister_Хозрасчетный_RecordType?$format=json
Прошерстил интернет на предмет всего связанного с OData в 1С и, к сожалению, информации по работе с регистрами очень мало.

Есть ли способы добавлять в регистр новые записи и как это по правильному реализовать?
---
По итогу решение не найдено. Добавлять записи в регистр через OData я не научился.
Реализовал через http сервис с нужным кодом в самом 1С
---
На текущий момент из предположений у меня - заменить POST запрос в AccountingRegister_Хозрасчетный_RecordType на PATCH запрос в AccountingRegister_Хозрасчетный, добавив новые записи в свойство RecordSet. Проблема в том, что я пока не нашел способа это правильно сделать.
---
Да, в https://its.1c.ru/db/v836doc#bookmark:dev:TI000001432 про AccountingRegister_Хозрасчетный_RecordType сказано
Сущность доступна только на чтение (запрос GET)

То есть, нужно создавать набор записей через AccountingRegister_Хозрасчетный_RowType. Осталось понять почему у меня не получается обратиться к этой сущности даже по GET запросу.
Сущность 'AccountingRegister_Хозрасчетный_RowType' не найдена

Возможно нужно как-то поправить регистрацию объектов в OData
---
Также интересует как можно добыть больше информации об ошибке из технологического журнала. Сейчас у меня там только крайне информативное "INTERNAL SERVER ERROR 500"
---
По итогу решение не найдено. Добавлять записи в регистр через OData я не научился.
Реализовал через http сервис с нужным кодом в самом 1С
ОТчет на скд

Запрос к регистру накопления (остатки и обороты).
Ресурсы: начальный остаток, приход, расход, конечный остаток.

Как прописать настройку, чтобы в отчет не попадали записи, в которых приход=расход, т.е. конечный остаток =0
---
ну как вариент в отборе указать КонечныйОстатотк > 0
---
ну как вариент в отборе указать КонечныйОстатотк > 0
---
Да спасибо, помогло, Нужно было отбор для группировки делать.
Уважаемые знатоки, подскажите, как в процедуре получить это значение?
---
Открыть конфигуратор, найти эту форму, посмотреть, какой путь к данным у этого элемента формы. Если там реквизит объекта (99%), то запросом (если есть ссылка на Том), если это реквизит формы, то смотреть код, как он заполняется в "ПриСозданииНаСервере".
---
Спасибо за наводку. Это справочник "ТомаХраненияФайлов", реквизит "ПолныйПутьWindows".
---
Открыть конфигуратор, найти эту форму, посмотреть, какой путь к данным у этого элемента формы. Если там реквизит объекта (99%), то запросом (если есть ссылка на Том), если это реквизит формы, то смотреть код, как он заполняется в "ПриСозданииНаСервере".
---
Спасибо за наводку. Это справочник "ТомаХраненияФайлов", реквизит "ПолныйПутьWindows".
Ребят. помогите, смотрите. есть документ коммерческого предложения, нужно ,чтобы если сумма документа <10000,То документ не проводился, НО ЗАПИСЫВАЛСЯ.
пишу вот такой код, все работает, не проводит, но и не записывает(

```1c
    &НаКлиенте
    Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
    Если ПараметрыЗаписи.РежимЗаписи = РежимЗаписиДокумента.Проведение и Объект.Сумма < 10000
    Тогда Сообщить ("Ошибка");
    Отказ = Истина;

    КонецЕсли;

    КонецПроцедуры
```
---
Процедура ОбработкаПроведения(Отказ, Режим)
Если ЭтотОбъект.Сумма < 10000
Тогда Сообщить ("Ошибка");
Отказ = Истина;

КонецЕсли;

КонецПроцедуры
---
Надо в процедуре ОбработкаПроведения
---
нет такой. 8.3 если что)
---
Если, что ходил в бухгалтерию 3.0, смотреть и если, что нашел.
---
пардон, затупил
---
Зачем вам Режим записи. Отказ = Истина делайте и всё.
---
не понял
---
Процедура ОбработкаПроведения(Отказ, Режим)
Если ЭтотОбъект.Сумма < 10000
Тогда Сообщить ("Ошибка");
Отказ = Истина;

КонецЕсли;

КонецПроцедуры
---
дел
---
Процедура ОбработкаПроведения(Отказ, Режим)
Если ЭтотОбъект.Сумма < 10000
Тогда Сообщить ("Ошибка");
Отказ = Истина;

КонецЕсли;

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

в модуле объекта же крепим ее? правильно?
---
Процедура ОбработкаПроведения(Отказ, Режим)
 Если РежимЗаписи.РежимЗаписи = РежимЗаписиДокумента.Проведение и Объект.Сумма < 10000
  Тогда Сообщить ("Ошибка");
  Отказ = Истина;

 КонецЕсли;

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

теперь он видит Объект.Сумма и режим записи
---
Да, в модуле объекта.
Просто "Записать" записывает? Убрали из "ПередЗаписью"?
---
да убрал, просто не записывает, пишет, как и в при проведении
---
Что пишет? А условие странное зачем если сумма меньше 10000 отказывать в проведении, не наоборот?
---
если сумма меньше 10То не проводить документ, он не нужен, а те которые больше , проводить.

и там еще реквизит формы, сумма. а его как вытащить в код? этотобъект уже не работает((
---
У документа нет реквизита документа "СуммаДокумента"?
---
нет, это реквизит формы
---
А сделать реквизит объекта не вариант?
---
сделал, ок все. но теперь пишет, что процедура уже определена)
в расширении же все делаю)
---
Ну так пишите Вместо
---
все работает, спасибо!
---
А у документа КП вообще свойство Проведение не в значении "Запретить"?
---
Смотрите, а как поставить запрет на сохранение документа? если сумма <10000?
подскажите пожалуйста