Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
29 мар 2024, 09:10

Доступ к реквизиту на запись

Автор c_andrey, 07 сен 2015, 17:18

0 Пользователей и 1 гость просматривают эту тему.

c_andrey

Добрый вечер.

1С 8.2 обычное приложение. УТ.
Такая мысль. При создании новой расходной накладной текущая дата(реквизит создан "ДатаПоследнегоЗаказа") перезаписывалась  в справочник Контрагенты (создан реквизит "ДатаПоследнегоЗаказа") по этому контрагенту.  (для анализа в отчете)-активный или нет клиент по дате последний продажи..

Что сделано.
В справочнике Контрагент создан реквизит "ДатаПоследнегоЗаказа" он прикручен к форме.
В расходной накладной создан реквизит "ДатаПоследнегоЗаказа"  + прикручен к форме при создании документа присваивается текущая дата.
её же надо потом перезаписать в Справочник контрагентов в реквизит "ДатаПоследнегоЗаказа").

ДатаПоследнегоЗаказа=Текущаядата();
Контрагент.ДатаПоследнегоЗаказа=ДатаПоследнегоЗаказа;
Записать();


Выдает ошибку
{Документ.РеализацияТоваровУслуг.Форма.ФормаДокумента.Форма(3043)}: Поле объекта недоступно для записи (ДатаПоследнегоЗаказа)
Контрагент.ДатаПоследнегоЗаказа=ДатаПоследнегоЗаказа;


Или надо идти по другому?

Спасибо.

Kironten

Контрагент у вас в данном случае ссылка. Сначала получите объект для записи:
КонтрагентОбъект = Контрагент.ПолучитьОбъект();
КонтрагентОбъект.ДатаПоследнегоЗаказа = ДатаПоследнегоЗаказа;
КонтрагентОбъект.Записать();

vitasw

Цитата: c_andrey от 07 сен 2015, 17:18В расходной накладной создан реквизит "ДатаПоследнегоЗаказа"  + прикручен к форме при создании документа присваивается текущая дата.
её же надо потом перезаписать в Справочник контрагентов в реквизит "ДатаПоследнегоЗаказа").
Ээээээээ, очень пагубное решение. Вызывает сразу кучу вопросов:
- Что будет если расходную сделали непроведенной/удалили?
- Что будет если в расходной поменяли дату документа?

c_andrey

Спасибо за подсказку.
Скажите vitasw а какое ваше решение данной проблемы.?
Спасибо.

vitasw

Вариант1. Запросом по документам (ну или по какому либо из регистров) элементарно вытаскивается нужная последняя дата.
Вариант2. Создать свой РС, при проведении писать в этот РС дату. По месту требования запрос извлекать из РС дату.

c_andrey

Попробую два варианта.
Добавлено: 09 сен 2015, 13:07


Поставил оба варианта.Спасибо за подсказки Всем!!!
Со временем какой то уберу.

Стала друга проблема.. Как с Формы Списка (справочник Контрагенты) обратиться к Форме элемента  к реквизиту на запись?


Добавлено: 09 сен 2015, 13:11


Пробывал так
КонтрагентОбъект = Контрагенты.ПолучитьОбъект();
КонтрагентОбъект.ДатаПоследнегоЗаказа = "22.77.88";
КонтрагентОбъект.Записать();


выдает ошибку

{Справочник.Контрагенты.Форма.ФормаСписка1.Форма(68,20)}: Переменная не определена (Контрагенты)
КонтрагентОбъект = <<?>>Контрагенты.ПолучитьОбъект(); (Проверка: Толстый клиент (обычное приложение))

vitasw

СпрСсылка=ЭлементыФормы.СправочникСписок.ТекущаяСтрока;
СпрОб=СпрСсылка.ПолучитьОбъект();
СпрОб.ДатаПоследнегоЗаказа = Дата(1988,5,1);
СпрОб.Записать();

c_andrey

Пишет
{Справочник.Контрагенты.Форма.ФормаСписка1.Форма(66)}: Ошибка при установке значения атрибута контекста (ДатаПоследнегоЗаказа)
СпрОб.ДатаПоследнегоЗаказа = Дата(1988,5,1);
по причине:
Реквизит недоступен для группы


а если

СпрСсылка=ЭлементыФормы.СправочникСписок.ТекущаяСтрока;
СпрОб=СпрСсылка.ПолучитьОбъект();
СпрОб.ДатаПоследнегоЗаказа = Дата(01,01,2001);
СпрОб.Записать();


то
Справочник.Контрагенты.Форма.ФормаСписка1.Форма(66)}: Преобразование значения к типу Дата не может быть выполнено
СпрОб.ДатаПоследнегоЗаказа = Дата(01,01,2001);

реквизит у ДатаПоследнегоЗаказа- Дата!!!
Добавлено: 09 сен 2015, 13:50


исправил в реквизите Использование для группы и элемента.
теперь
{Справочник.Контрагенты.Форма.ФормаСписка1.Форма(65)}: Значение не является значением объектного типа (ПолучитьОбъект)
СпрОб=СпрСсылка.ПолучитьОбъект();


vitasw

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

Умар

привет я понимаю что я не в тему пишу но не могу найти как создать тему на форуме помогите плиз

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск