Имя: Пароль:
1C
1C 7.7
v7: Периодические реквизиты из формы справочника
0 Sima42
 
04.04.14
10:11
Столкнулся с проблемой. Есть справочник сотрудники. Есть периодические реквизиты. Открывают форму и изменяют допустим Спр.контракт. Сохраняют, выходит окошко сохранить на текущую дату. А мне надо указать ту дату, которую надо. Я могу им даже в форме сделать реквизит с датой, на которую сохранять. Но как сделать это в коде, что, то не могу понять.
1 Рэйв
 
04.04.14
10:16
Наверное курить что-то вроде объекта "Периодический"
2 Sima42
 
04.04.14
10:17
Уже и так думал сделать. не проходит

Процедура Сох()
ИспользоватьДату(СохДат);
Контракт=Контракт;
Записать();
КонецПроцедуры
3 Sima42
 
04.04.14
10:19
Тут вообще ошибка выходит
Процедура Сох()
Контракт.Установить(СохДат, Контракт);
КонецПроцедуры
4 Sima42
 
04.04.14
10:22
Да курил я уже. Мне же надо из формы справочника. Все рассказывают как в документах, отчетах и т.д., периодический проставить.
5 an-korot
 
04.04.14
11:13
НекаяДата = Дата(2014,01,01);
Спр.Категория.Установить(НекаяДата, НоваяКатегория);
6 an-korot
 
04.04.14
11:20
у тебя вот так...
только в процедуру нужно передать справочник и дату

Процедура Сох(МойСправочник, СохДат, Контракт)
МойСправочник.Контракт.Установить(СохДат, Контракт);
КонецПроцедуры
7 Sima42
 
04.04.14
12:33
Дак а если процедура в форме справочника. Как мне написать "МойСправочник"?
8 1Сергей
 
04.04.14
12:34
(7) Контекст
9 Ёпрст
 
04.04.14
12:35
Открыть для себя типовую..
Там это всё есть
10 Sima42
 
04.04.14
15:27
(8) Дак контекст это передача данных. И куда я должен передавать? Не понимаю блин.....
11 vinogradъ
 
04.04.14
15:32
В модуле формы ИспользоватьДату(<?>,) + СохранениеПериодическихРеквизитов(<?>,)
12 Sima42
 
04.04.14
16:03
Спасибос все сработало!  vinogradъ тебе отдельное спасибо.


У меня еще вопрос. В документе есть реквизит дата. При выборе даты выскакивает календарь с текущим месяцем. Можно ли как-нибудь программно указать месяц, который надо, а не текущий?
13 an-korot
 
04.04.14
17:00
(12)
ну ты совсем ленивый о.О
укажи нужную дату перед выбором и на ней встанет календарь.

Процедура ПриНачалеВыбораЗначения(ИдЭлементаДиалога, Фл)
    Если ИдЭлементаДиалога = "ДатаДок" Тогда
        ДатаДок = Дата(2010,01,15);
    КонецЕсли;
КонецПроцедуры
14 Sima42
 
04.04.14
17:18
(13) Спасибо. Это не я ленивый это наши бухи. Разбаловал я их. Вот ребусы и загадывают)
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший