Имя: Пароль:
1C
1C 7.7
v7: Как записать скопированный элемент справочника ( 1с 7.7 )?
,
0 AlexanderKsl
 
10.07.15
18:55
В справочнике Номенклатура копированием создается новый элемент. Перед тем как добавить этому элементу материалы из подчиненного справочника, необходимо его записать, чтобы использовать код.
1 ВРедная
 
10.07.15
18:58
(0) Кнопка "Записать" не помогает?
2 DGorgoN
 
10.07.15
18:59
Пр-ра ПриКопировании()
Записать();
3 AlexanderKsl
 
10.07.15
19:00
Записать();
{Справочник.Номенклатура.Форма.Модуль(19)}: Данная команда не может выполняться в формуле элемента диалога!
4 AlexanderKsl
 
10.07.15
19:08
Пр-ра ПриКопировании()
Записать();

Ошибок не выдает, но и не записывает.
5 Злопчинский
 
10.07.15
19:10
(4) не верю
6 Злопчинский
 
10.07.15
19:11
во первых ПриКопировании() - такой предопределенной процедуры нет.. как вы ее вызывааете при копировании нового элемента справочника?

Записать() - относится к кконтексту формы? - а вы где находитесь?
7 DGorgoN
 
10.07.15
19:14
Процедура ВводНового(<?>,)
Синтаксис:
ВводНового(<ПризнКопирования>,<ОбъектКопирования>)

Пардон
8 AlexanderKsl
 
10.07.15
19:15
Так в модуле формы элемента вызываю. Процедура ВводНового( эл_скопирован, эл_родитель).
9 AlexanderKsl
 
10.07.15
19:16
(3) - ошибка при вызове в ВводНового( эл_скопирован, эл_родитель)
10 DGorgoN
 
10.07.15
19:18
Хм. и ведь точно:
Процедура ВводНового()
    Записать();
КонецПроцедуры

Записать();
{Справочник.Новый1.Форма.Модуль(2)}: Данная команда не может выполняться в формуле элемента диалога!
11 DGorgoN
 
10.07.15
19:25
"Перед тем как добавить этому элементу материалы из подчиненного справочника"

Вот тут вот делай Записать(); и делов как щеглов

(Немного забываю уже клюшки и особенности работы с ними)
12 AlexanderKsl
 
10.07.15
19:42
(11) Ну так делаю, выводит error`ы, потому и спрашиваю - от безвыходности. Элемент не сохранен, через ТекущийЭлемент() не обратишься, НайтиПоКоду - так нет его еще в справочнике, на СтрокаДействийФормы = "#Записать;" не реагирует и не ругается.
13 Duke1C
 
10.07.15
21:37
(12) А в ПриОткрытии() ловить не пробовал и там Записать()?
(в порядке дежурного бреда...)
14 Wern
 
10.07.15
21:49
Старая ошибка 7.7 в формуле элемента диалога свой контекст отличный от контекста справочника. Обычно обходили через закрытие формы. т.е. в формуле диалога флаг=1; Форма.Закрыть() а при закрытии если флаг=1 тогда записать и отменить закрытие.
15 Злопчинский
 
11.07.15
01:33
(14)  только вот странно
Что в формуле одного элемента диалога все норм
А другого - не норм
Чем принципиально отличаются поле выбора и кнопка?
16 AlexanderKsl
 
11.07.15
13:04
(14) Сохраняет! При вызове Форма.Закрыть(); появляется диалог Сохранить?Да;Нет;Отмена - возможно его скрыть?

Перем флагЗакр;

Процедура ВводНового( эл_скопирован, эл_родитель)
    Если эл_скопирован = 1 Тогда
        флагЗакр = 1;
        Форма.Закрыть();
    КонецЕсли
...
КонецПроцедуры

Процедура ПриЗакрытии()
    Если флагЗакр = 1 Тогда
        Записать();
        флагЗакр = 0;
        СтатусВозврата(0);
    КонецЕсли
КонецПроцедуры
17 HawkEye
 
11.07.15
14:19
(16)
Форма.Закрыть(<?>);
Синтаксис:
Форма.Закрыть(<ЗапрСохр>)
Назначение:
Закрыть форму.
Параметры:
<ЗапрСохр> - необязательный параметр. Число: 0 - закрыть форму без вопросов; 1 - если документ, счет, элемент справочника изменен, то будет запрос о сохранении изменений. Значение по  умолчанию - 1.
Замечание:
Действие данного метода не прерывает выполнения текущей процедуры программы, т.е. процедура доработает до конца. Данный метод  лишь устанавливает признак, который отрабатывает после окончания выполнения процедуры. Доступ к методу возможен только в контексте Модуля формы через атрибут Форма
18 AlexanderKsl
 
11.07.15
14:51
(17) Спасибо. Как то упустил этот метод из вида.