работаю с справочником "сотрудники"
есть поле ввода из справочника "договора"
для каждого сотрубника есть номер договора: Договор 1 и т.д...
нужно вручную прописать значение номера договора и добавить табельный номер
сделал через кнопку, но не записывает новое значение
//------------------------------------------------------------------
Процедура договор()
Если ПустоеЗначение(ТекущийЭлемент())=1 Тогда
Возврат;
КонецЕсли;
Если ТекущийЭлемент().ЭтоГруппа()=1 Тогда
Возврат;
КонецЕсли;
Элемент=СоздатьОбъект("Справочник.Сотрудники");
Элемент.найтиЭлемент(ТекущийЭлемент());
Если ПустоеЗначение(Элемент.Договор)=0 Тогда
Сообщить(Элемент.Договор.Тип);//вижу номер
Элемент.Элемент.Договор.Тип=Элемент.Элемент.Договор.Тип+ТабНомер;//запись в другой справочник не идет
Элемент.Записать();
КонецЕсли;
КонецПроцедуры
//------------------------------------------------------------------
Процедура сотрудникномер()
Если ПустоеЗначение(ТекущийЭлемент())=1 Тогда
Возврат;
КонецЕсли;
Если ТекущийЭлемент().ЭтоГруппа()=1 Тогда
Возврат;
КонецЕсли;
//открыли весь справочник
Элемент=СоздатьОбъект("Справочник.Сотрудники");//справочник номер 1 в котором я нахожусь
Элемент.найтиЭлемент(ТекущийЭлемент());//выбрали текущую запись
Если ПустоеЗначение(Элемент.Договор)=0 Тогда//поле ввода в котором выбрано значение из справочника 2
Сообщить(Элемент.Договор);//вижу значение которое есть на форме
Сообщить(Элемент.Договор.Текст);//вижу значение которое хочу поправить
Элемент.Договор.Текст=Элемент.Договор.Текст+ТабНомер;//хочу прописать то что мне надо
Элемент.Записать();//должна быть запись но не работает
КонецЕсли;
КонецПроцедуры
4andriy @ Сегодня, 13:09
,
А, ну да! Так работать не будет, если все-таки верно понял, что нужно.
Необходимо искать не в справочнике Сотрудников, а в Договорах - и уже его корректировать и записывать.
1983air @ Сегодня, 14:11
,
да, надо найти в договорах строку которая выбрана в поле ввода и там изменить
Вы хотите из справочника сотрудники изменить справочник договора? то Вам необходимо в этих договорах и искать, а не в сотрудниках.
denis84 @ Сегодня, 16:43
,
да, и нужная строка которую нужно поправить уже выбрана в поле ввода
нашел код который наверно можно адаптировать под задачу
СпрСотр = СоздатьОбъект("Справочник.Сотрудники");
СпрСотр.НайтиЭлемент(Сотрудник);
СпрСотр.НайтиПоКоду(123);
СпрСотр.НайтиПоНаименованию("Иванов Иван Иванович");
СпрСотр.НайтиПоРеквизиту("Оклад", 5000);
//если элемент найден, он становится текущим и его можно прочитать так:
Если СпрСотр.НайтиПоНаименованию("Иванов Иван Иванович")=1 Тогда
........НайденныйСотр = СпрСотр.ТекущийЭлемент();
КонецЕсли;
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua