|
Программное внесение в справочник периодических реквизитов | ☑ | ||
---|---|---|---|---|
0
st31
06.05.14
✎
11:40
|
Всем привет. Откликнитесь, кто знает.После большого перерыва в программировании не все получается :-( . В справочнике "Контрагенты" введены два периодических реквизита: ДолжностьЗаказчика и
ФИОЗаказчика. Делаю перенос с другой базы.Сравниваю, на заданную дату внесены ли соответствующие фамилии и должности и в случае нобходимости хочу их записать на конкретные даты. СпрКонтр1=СоздатьОбъект("Справочник.КонтрАгенты"); Если ПустоеЗначение(ТЗ.УНН)=0 Тогда Если СпрКонтр1.НайтиПоРеквизиту("УНН",СокрЛП(ТЗ.УНН),1)=1 Тогда СпрКонтр=СпрКонтр1.ТекущийЭлемент(); //... Если ((ПустоеЗначение(ТЗ.ДатаДолжностьЗаказчика)=0) и (ПустоеЗначение(ТЗ.ДолжностьЗаказчика)=0))Тогда Если (СокрЛП(СпрКонтр.ДолжностьЗаказчика.Получить(ТЗ.ДатаДолжностьЗаказчика))<>СокрЛП(ТЗ.ДолжностьЗаказчика)) Тогда СпрКонтр.ДолжностьЗаказчика.Установить(ТЗ.ДатаДолжностьЗаказчика,СокрЛП(ТЗ.ДолжностьЗаказчика)); СпрКонтр.Записать(); КонецЕсли; КонецЕсли; Если ((ПустоеЗначение(ТЗ.ДатаФИОЗаказчика)=0) и (ПустоеЗначение(ТЗ.ФИОЗаказчика)=0))Тогда Если (СокрЛП(СпрКонтр.ФИОЗаказчика.Получить(ТЗ.ДатаФИОЗаказчика))<>СокрЛП(ТЗ.ФИОЗаказчика)) Тогда СпрКонтр.ФИОЗаказчика.Установить(ТЗ.ДатаФИОЗаказчика,СокрЛП(ТЗ.ФИОЗаказчика)); СпрКонтр.Записать(); КонецЕсли; КонецЕсли; Не пропускает в таком варианте, хотя в этих реквизитах справочника стоят флажки: периодический, изменять документами, изменять вручную. Все время выдает ошибку: СпрКонтр.ФИОЗаказчика.Установить(ТЗ.ДатаФИОЗаказчика,СокрЛП(ТЗ.ФИОЗаказчика)) = Ошибка в выражении! Пробывал в отладчике сделать прямую запись: СпрКонтр = Рога и Копыта ЧП СпрКонтр.ФИОЗаказчика.Установить('21.02.14',"Иванов В.В.") = Ошибка в выражении! СпрКонтр.ФИОЗаказчика = НеизвестныйОбъект Помогите, кто знает причину. Заранее благодарю за помощь :-) |
|||
1
st31
06.05.14
✎
11:51
|
Народ, я понимаю, что устарел с вопросом по 7.7, но может кто поможет, кто знает как это сделать
|
|||
2
ДенисЧ
06.05.14
✎
11:54
|
Сделай ИспользоватьДату() и просто присавивай, записать потом не забудь
|
|||
3
st31
06.05.14
✎
11:56
|
Сейчас попробую, а почему через Установить() не катит?
Что не учитываю, чтобы записались периодические реквизиты в справочник? |
|||
4
efim16rus
06.05.14
✎
11:57
|
Метод "Установить" можно использовать только для объектов-справочников, созданных функцией СоздатьОбъект.
А у тебя СпрКонтр=СпрКонтр1.ТекущийЭлемент(); Поэтому не работает. |
|||
5
efim16rus
06.05.14
✎
11:57
|
Сделай СпрКонтр1.ФИОЗаказчика.Установить('21.02.14',"Иванов В.В.")
|
|||
6
st31
06.05.14
✎
11:59
|
Благодарю, пробую :-)
|
|||
7
Chum
06.05.14
✎
12:03
|
СпрКонтр.ИспользоватьДату( НужнаяДата, 1 );
тогда все прокатит и без метода Установить |
|||
8
st31
06.05.14
✎
12:14
|
СпрКонтр1.ДолжностьЗаказчика.Установить(ТЗ.ДатаДолжностьЗаказчика,СокрЛП(ТЗ.ДолжностьЗаказчика));
{G:\1C\FILIAL2011\EXTFORMS\ДЛЯ ОТРАБОТКИ\ЗАГРАКТОВИЗЕХЕL.ERT(661)}: Не выбран элемент! Что-то с использованием СпрКонтр1 не прокатило. Интересно почему? |
|||
9
Ёпрст
06.05.14
✎
12:17
|
(8) вот этот бред выкини, для начала
>>>СпрКонтр=СпрКонтр1.ТекущийЭлемент(); |
|||
10
st31
06.05.14
✎
12:21
|
Не вопрос, сейчас попробую :-)
|
|||
11
Масянька
06.05.14
✎
12:22
|
(9) Ё! Есть такой вопрос: если смотреть на "периодический реквизит" с позиции классического программирования - это класс или ближе к массиву?
|
|||
12
Ёпрст
06.05.14
✎
12:46
|
(11) это бездарное 1с-овское изобретение..
|
|||
13
Ёпрст
06.05.14
✎
12:47
|
нужно было по-быстрому слепить - вот и сделали, а потом, забили
|
|||
14
Масянька
06.05.14
✎
12:48
|
(12) (13) Полностью согласна. Но все же?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |