Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
23 Май 2018, 06:39
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Не выбирается элемент по реквизиту типа Справочник  (Прочитано 2025 раз)

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

Оффлайн SecretSilent

  • *
  • Сообщений: 1
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-12-14
  • Сайт: 
  • Профессия: Ученик 1С
Тема: АВС-анализ.
В документе идёт изменение статусов покупателей со старого на новый. Соответственно, затем нужно провести документ и тем самым изменить статус в самом справочнике. Делаю реквизит в справочнике Покупатели Статус (тип Справочник.Статусы) периодическим и изменяемым документами. При выборе названия организации-покупателя надо, чтобы отображался старый статус на форме.
Пишу процедуру в модуле формы документа:

Процедура ИзменениеПокупателя()
   СпрПокуп = СоздатьОбъект("Справочник.Покупатели");
   Док = СоздатьОбъект("Документ.ИзменениеСтатусов");
   ТекДок = Док.ТекущийДокумент();
   СпрПокуп.НайтиПоНаименованию(Покупатель.Наименование,,1);
   ТекДок.СтарыйСтатус = СпрПокуп.Статус;
   ТекДок.ДатаИзменения = ТекущаяДата();
КонецПроцедуры

Так вот. При попытке вывести найденный статус выводится НеизвестныйОбъект. Дата не высвечивается.
А если делаю реквизит Статус непериодическим, то высвечивается правильно... Но тогда проводку не сделать.
Помогите, пожалуйста, подскажите, что не так? я в 1С пока новичок.

Текст процедуры проводки:
Процедура ОбработкаПроведения()

   Если СтарыйСтатус = НовыйСтатус Тогда
      Предупреждение("Проводка невозможна, т.к. старый и новый статусы одинаковы!");
      НеПроводитьДокумент();
   КонецЕсли;     
   //иначе
   Спр = СоздатьОбъект("Справочник.Покупатели");
   Спр.НайтиПоНаименованию(Покупатель.Наименование);
   УстановитьРеквизитСправочника(Спр, "Статус", НовыйСтатус, ДатаДок,,,);

КонецПроцедуры


Оффлайн nicotin

  • *
  • Сообщений: 3
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-09-27
  • Сайт: 
  • Профессия: Программист 1С
Поскольку процедура расположена в модуле формы документа, к реквизитам можно обращаться напрямую. Следовательно,3 и 4 строки надо убрать, 6 и 7 записать в виде:
СтарыйСтатус = СпрПокуп.Статус.Получить(ДатаДок-1);
// -1 на случай повторного перепроведения документа
ДатаИзменения = РабочаяДата() //используют чаще, чем ТекущаяДата()


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
155 Сообщений
oleg-x
68 Сообщений
alex0402
64 Сообщений
AIFrame AIFrame
59 Сообщений
wise wise
39 Сообщений
buketov.av buketov.av
36 Сообщений
KOI8-R
34 Сообщений
ilyay ilyay
29 Сообщений
Alter
28 Сообщений
trialex3
25 Сообщений

* Кто онлайн

  • Точка Гостей: 313
  • Точка Скрытых: 0
  • Точка Пользователей: 9
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal