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

на форме у табличной части врезаемся в обработчик события:

```1c
    Процедура УслугиИРаботыПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
    Если НоваяСтрока Тогда // ещё можно проверять флаг Копирование
    Элемент.ТекущиеДанные.НДСКРаспределению = Истина;
    КонецЕсли
    КонецПроцедуры
```

PS (не буду вникать что там в (43) - лень)
---
```1c
    Если ЭтоНовый() Тогда
    Флажок = Истина;
    КонецЕсли;
```
---
Расширение_Основное Документ.ПоступлениеУслугРабот.Форма.ФормаДокумента.Форма(55,7)}: Процедура или функция с указанным именем не определена (ЭтоНовый)
 Если <<?>>ЭтоНовый() Тогда (Проверка: Сервер)
---
Сорри, без скобок попробуйте.
---
{Расширение_Основное Документ.ПоступлениеУслугРабот.Форма.ФормаДокумента.Форма(55,7)}: Переменная не определена (ЭтоНовый)
 Если <<?>>ЭтоНовый Тогда (Проверка: Сервер)
---
Не вводите человека в еще большее заблуждение! Речь идет о форме, а не о модуле объекта.
---
Посмотрите внимательно на (13): это процедура формы ПриОткрытии.
---
Именно. А где у нас доступен метод ЭтоНовый()? На форме доступен? На клиенте (ПриОткрытии)?
---
это процедура формы ПриОткрытии
---
Ну так доступен типовой метод ЭтоНовый() в контексте процедура ПриОткрытии() или нет? Вы же посоветовали именно его использовать.
А в вашем примере из (13) - это кусок типового кода, где в модуле формы реализована собственная функция ЭтоНовый().
Не надо пытаться показывать человеку в качестве решения код из другого документы или даже из другой конфигурации. Там другая прикладная логика программного кода.
---
Ну так... ПриСозданииНаСервере() проверяйте - если документ новый, то расставляйте свои флажки по необходимым условиям...
---
так это условие и есть! При создании на сервере, как прописать ЗначениеЗаполения = Истина?
---
Зачем тебе ЗначениеЗаполнения? Заполняй сразу реквизиты документа. Или реквизиты формы...
---
не получается!
---
Не получается ЧТО?
---
у меня нет большинство свойств, а программная реализация, не получается
---
Вы наверно считаете, что все видят ваш монитор через сайт?
В чем проблема привести код, привести скрины?
---
сначала у меня идет это: (это в ПриСозданииНаСервере)

```1c
    УстановитьУсловноеОформление();

    УчетНДС.УстановитьУсловноеОформлениеПолейНДСКРаспределению(УсловноеОформление, "УслугиИРаботы");
```

Ссылка идет на общий модуль:

```1c
    Отображение реквизитов НДСКРаспределению

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

    ОбщийМодульСКД.ДобавитьОформляемоеПоле(ЭлементУО.Поля, ИмяТабЧасти + "ТекстНДСКРаспределению");
    ОбщийМодульСКД.ДобавитьОформляемоеПоле(ЭлементУО.Поля, ИмяТабЧасти + "НДСКРаспределению");

    ОбщегоНазначенияКлиентСервер.ДобавитьЭлементКомпоновки(ЭлементУО.Отбор,
    "Объект.ПринятьНДСКВычету", ВидСравненияКомпоновкиДанных.Равно, Ложь);

    ЭлементУО.Оформление.УстановитьЗначениеПараметра("Отображать", Ложь);
    ЭлементУО.Оформление.УстановитьЗначениеПараметра("Доступность", Ложь);
```

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

Но толку нет
---
Правильно, что нету. НайтиПоИдентификатору - это поиск строки в таблице формы, а не поиск ячейки.

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

напр: ЗначениеЗаполнено поменять на ЗначениеПустое или ЭтоГруппа меняем на ЭтоЭлемент (или ЭтоНеГруппа)
---
здравствуйте. А где поменять?
---
здрасте, в 1С.

у вас задача (точнее вопрос) поставлен крайне некорректно...

1. что есть "флажок"? реквизит документа или реквизит формы?
2. где его создали? в расширении или уже был в основной конфигурации?
3. если это реквизит формы (как тут многие думают), почему вдруг он зависит от того какой документ открывают?
---
если это ВАШ реквизит, т.е. ВЫ его создали, ВЫ придумали ему смысловую нагрузку, то ВЫ же можете его поменять?

назовите реквизит НДСНеКРаспределению, и всё... и не надо мудрить...

PS но если реквизит уже был, то это не ваш вариант решения проблемы...
---
Поле флажка на форме ПУТЬ:Объект.УслугиИРаботы.НДСКРаспределению, НДСКРаспределению - это реквизит табличной части документа ПоступленияУслугРабот
В конфе, но дополнения нужно сделать в расширении;
---
тогда правьте модуль объекта, там есть два обработчика событий:
Процедура ОбработкаЗаполнения
и
Процедура ПриКопировании
сделайте в них то что вам надо...
---
а как? Примерно можете помочь кодом?
---
```1c
    для каждого стр из УслугиИРаботы цикл
    стр.НДСКРаспределению = Истина;
    конеццикла;
```

ЗЫ там нет "приставки" Объект, как на Форме.
---
для каждого стр из УслугиИРаботы цикл
стр.НДСКРаспределению = Истина;
конеццикла; Спасибо, сейчас попробую
---
вроде ошибок нет, но значение реквизита незаполненное!
---
где не заполнено? когда не заполнено? как проверял?

в пустом документе не заполнено?
---
Захожу в программу, прохожу в документ поступления, создаю новый, добавляю номенклатуру, и там где должна быть галочка, там пусто, в ручную могу заполнит, ставлю и все, но нужно по умолчанию
---
добавляю номенклатуру

блин.... а причем здесь "новый документ"?

ты создаешь новую строку, так и обрабатывай соответствующее событие....
---
мне нужно, чтобы по умолчанию галочка стояла при создании нового документа, т.е. старые не менялись, если я их открыл, а все новые по умолчанию были бы с галочкой.
Кстати этот реквизит включается по ссылке (надпись на форме синим цветом), при нажатии на эту ссылку открывается МАЛЕНЬКАЯ ФОРМА, где нужно установить галочку, после ее установки, появляется НАШ реквизит табличной части (который нужен), но галочка не стоит в нем. Может лучше написать код, что если галочка в МАЛЕНЬКОЙ ФОРМЕ есть Тогда, НАШ реквизит = Истина
---
последняя попытка....

на форме у табличной части врезаемся в обработчик события:

```1c
    Процедура УслугиИРаботыПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
    Если НоваяСтрока Тогда // ещё можно проверять флаг Копирование
    Элемент.ТекущиеДанные.НДСКРаспределению = Истина;
    КонецЕсли
    КонецПроцедуры
```

PS (не буду вникать что там в (43) - лень)
---
работает, спасибо, уже что-то, но теперь данное перезаписывается при любом движении в строке, сейчас попробую с другими обработчиками!
---
посмотри событие ПередНачаломДобавления
там без проверки можно устанавливать флаг.
---
Нет, так не работает
---
может это связано с тем, что обработчик не видит эту процедуру из-за добавленного параметра "НоваяСтрока", если я ее пихаю в параметры самой процедуры, то обработчик ее уже не видит! а если не пихаю, то Пременная не определена (НоваяСтрока)
---
"добавление" - не имеет параметра "новаястрока"
---
да да, а как тогда код дописать? Присвоить значение НовойСтроке? Типа: НоваяСтрока = Объект.УслугиИРаботы;
---
НоваяСтрока = Объект.УслугиИРаботы; Так не катит , преобразование значения к типу Булево не может быть выполнено
---
```1c
    Процедура УслугиИРаботыПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр)
    Элементы.УслугиИРаботы.ТекущиеДанные.НДСКРаспределению = Истина;
    КонецПроцедуры
```
---
Блин, все так просто))) Спасибо большое. Жму руку!
---
кстати, лучше всегда добавлять проверки:

```1c
    &НаКлиенте
    Процедура УслугиИРаботыПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр)
    ТекущиеДанные = Элементы.УслугиИРаботы.ТекущиеДанные
    Если НЕ ТекущиеДанные=Неопределено Тогда
    ТекущиеДанные.НДСКРаспределению = Истина;
    КонецЕсли;
    КонецПроцедуры
```
---
какую книгу почитать или курсы пройти, чтобы хорошо понять ссылочные вопросы: как обращаться из модуля менеджера, как из модуля документа, из модуля форы документа, из общего модуля? Чтобы он был понятен к усвоению, а то у меня с эти проблемы!
---
самое лучший способ научиться разговаривать на иностранном языке - говорить с носителями языка

читайте чужой код (как это сделано в типовых)

например: за набрал в глобальном поиске "ПередНачаломДобавления", и смотри как народ делает обработчик события
---
хотя бы как обратиться к реквизиту табличной части документа в модуле?
---
{Расширение_Основное Документ.ПоступлениеУслугРабот.Форма.ФормаДокумента.Форма(55,7)}: Переменная не определена (ЭтоНовый)
 Если <<?>>ЭтоНовый Тогда (Проверка: Сервер)
---
Поле флажка на форме ПУТЬ:Объект.УслугиИРаботы.НДСКРаспределению, НДСКРаспределению - это реквизит табличной части документа ПоступленияУслугРабот
В конфе, но дополнения нужно сделать в расширении;
---
Добавьте в расширение функцию
ПриСозданииНаСервере
из модуля формы из основной конфигурации.

Проверить из этой функции новый документ или нет можно через

```1c
    Если РеквизитФормыВЗначение("Объект").ЭтоНовый() Тогда
    ///
    КонецЕсли;
```
---
Здравствуйте, а в теле что писать? Я написал это, но пишет поле не обнаружено!

```1c
    Если РеквизитФормыВЗначение("Объект").ЭтоНовый() Тогда
    Объект.УслугиИРаботы.НДСКРаспределению = Истина;
    КонецЕсли;
```
---
Я вам написал как определить что документ новый.

Если документ создан копированием то дальше вам нужно пробежаться по всем строкам табличной части и установить реквизит в истину например как-то так:

```1c
    Для каждого СтрокаУслугиИРаботы из Объект.УслугиИРаботы Цикл
    СтрокаУслугиИРаботы.НДСКРаспределению = Истина;
    КонецЦикла;
```
---
И тут еще одна проблема, вы в теме указали что это общие вопросы программирования, а сейчас обсуждаете конкретные реквизиты конкретной конфигурации
у нас например Бухгалтерия предприятия КОРП и документ называется ПоступлениеТоваровУслуг
если бы вы указали конкретную конфигурацию то отвечали бы в первую очередь люди которые именно в ней и работают.

Могу посоветовать только включить отладку, остановить отладку при работе с формой, через контекстное меню в коде модуля открыть окно Вычислить выражение и там изучить структуру табличной части
---
Извините, а вы точно программист???
---
ну Вы то тоже не особо знаниями блеснули, только хотите показать, что всех умнее, с подколками, а где я говорил, что я программист?
---
Знаниями? Я здесь не собираюсь блистать. Я дал направление. И все мои коллеги пытются вам вдолбить ровно то же самое - при создании формы заполнять необходимые реквизиты. Делать это вместо вас тут никто не будет. Вам показывают направление.
Если не умеете и не понимаете - не беритесь.
Наймите программиста, и не трахайте себе мозг.
---
я так учусь и постигаю.
---
в процедуре ПриСозданииНаСервере новый документ можно проверить:

```1c
    Если Параметры.Ключ.Пустая() Тогда

    // если сюда вошел, значит документ новый, судя по вашей задаче ничего не выполняем

    Иначе

    // делаем, что требуется

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

```1c
    Если нет, то

    Для Каждого Стр Из УслугиИРаботы Цикл

    Стр.НДСКРаспределению = Истина;

    КонецЦикла;

    Если подчинен к "Объект", то

    Для Каждого Стр Из Объект.УслугиИРаботы Цикл

    Стр.НДСКРаспределению = Истина;

    КонецЦикла;
```
---
посмотрите выше, табличная часть УслугиИРаботы не подчинены к "Объект"?
если речь про моё сообщение, там код был в модуле объекта.
---
в первом случае ошибка (неопознан), второй без ошибок, но не работает в программе.