Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> прописать значение в другом справочнике          
4andriy Подменю пользователя
сообщение 22.09.21, 20:57
Сообщение #1

Завсегдатай
****
Группа: Пользователи
Сообщений: 177
Спасибо сказали: 1 раз
Рейтинг: 1

работаю с справочником "сотрудники"
есть поле ввода из справочника "договора"
для каждого сотрубника есть номер договора: Договор 1 и т.д...
нужно вручную прописать значение номера договора и добавить табельный номер
сделал через кнопку, но не записывает новое значение

//------------------------------------------------------------------    
Процедура договор()
Если ПустоеЗначение(ТекущийЭлемент())=1 Тогда
Возврат;
КонецЕсли;  
Если ТекущийЭлемент().ЭтоГруппа()=1 Тогда
Возврат;
КонецЕсли;    

Элемент=СоздатьОбъект("Справочник.Сотрудники");
Элемент.найтиЭлемент(ТекущийЭлемент());

Если ПустоеЗначение(Элемент.Договор)=0 Тогда
Сообщить(Элемент.Договор.Тип);//вижу номер
Элемент.Элемент.Договор.Тип=Элемент.Элемент.Договор.Тип+ТабНомер;//запись в другой справочник не идет
Элемент.Записать();  
КонецЕсли;

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

1983air Подменю пользователя
сообщение 27.09.21, 11:33
Сообщение #2

Общительный
**
Группа: Пользователи
Сообщений: 10
Спасибо сказали: 9 раз
Рейтинг: 0

Цитата(4andriy @ 22.09.21, 21:57) *
Элемент.Элемент.Договор.Тип=Элемент.Элемент.Договор.Тип+ТабНомер;//запись в другой справочник не идет

А почему Элемент.Элемент? Может достаточно одного Элемент?
Элемент.Договор.Тип=Элемент.Договор.Тип+ТабНомер;//запись в другой справочник не идет
Это фрагмент из рабочего модуля скопирован или из головы написан?

Не видя всего, сложно, бывает, ответить сразу правильно...

4andriy Подменю пользователя
сообщение 27.09.21, 12:09
Сообщение #3

Завсегдатай
****
Группа: Пользователи
Сообщений: 177
Спасибо сказали: 1 раз
Рейтинг: 1

1983air @ Сегодня, 12:33 * ,
Процедура сотрудникномер()
Если ПустоеЗначение(ТекущийЭлемент())=1 Тогда
Возврат;
КонецЕсли;  
Если ТекущийЭлемент().ЭтоГруппа()=1 Тогда
Возврат;
КонецЕсли;    
//открыли весь справочник
Элемент=СоздатьОбъект("Справочник.Сотрудники");//справочник номер 1 в котором я нахожусь
Элемент.найтиЭлемент(ТекущийЭлемент());//выбрали текущую запись

Если ПустоеЗначение(Элемент.Договор)=0 Тогда//поле ввода в котором выбрано значение из справочника 2
Сообщить(Элемент.Договор);//вижу значение которое есть на форме
Сообщить(Элемент.Договор.Текст);//вижу значение которое хочу поправить
Элемент.Договор.Текст=Элемент.Договор.Текст+ТабНомер;//хочу прописать то что мне надо
Элемент.Записать();//должна быть запись но не работает
КонецЕсли;

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

1983air Подменю пользователя
сообщение 27.09.21, 13:11
Сообщение #4

Общительный
**
Группа: Пользователи
Сообщений: 10
Спасибо сказали: 9 раз
Рейтинг: 0

4andriy @ Сегодня, 13:09 * ,
А, ну да! Так работать не будет, если все-таки верно понял, что нужно.
Необходимо искать не в справочнике Сотрудников, а в Договорах - и уже его корректировать и записывать.

4andriy Подменю пользователя
сообщение 27.09.21, 13:33
Сообщение #5

Завсегдатай
****
Группа: Пользователи
Сообщений: 177
Спасибо сказали: 1 раз
Рейтинг: 1

1983air @ Сегодня, 14:11 * ,
да, надо найти в договорах строку которая выбрана в поле ввода и там изменить

denis84 Подменю пользователя
сообщение 27.09.21, 15:43
Сообщение #6

Оратор
Иконка группы
Группа: Местный
Сообщений: 432
Из: Украина
Спасибо сказали: 138 раз
Рейтинг: 139.5

Вы хотите из справочника сотрудники изменить справочник договора? то Вам необходимо в этих договорах и искать, а не в сотрудниках.

4andriy Подменю пользователя
сообщение 27.09.21, 15:54
Сообщение #7

Завсегдатай
****
Группа: Пользователи
Сообщений: 177
Спасибо сказали: 1 раз
Рейтинг: 1

denis84 @ Сегодня, 16:43 * ,
да, и нужная строка которую нужно поправить уже выбрана в поле ввода

4andriy Подменю пользователя
сообщение 27.09.21, 20:29
Сообщение #8

Завсегдатай
****
Группа: Пользователи
Сообщений: 177
Спасибо сказали: 1 раз
Рейтинг: 1

нашел код который наверно можно адаптировать под задачу

  СпрСотр = СоздатьОбъект("Справочник.Сотрудники");

СпрСотр.НайтиЭлемент(Сотрудник);
СпрСотр.НайтиПоКоду(123);
СпрСотр.НайтиПоНаименованию("Иванов Иван Иванович");
СпрСотр.НайтиПоРеквизиту("Оклад", 5000);

//если элемент найден, он становится текущим и его можно прочитать так:
Если СпрСотр.НайтиПоНаименованию("Иванов Иван Иванович")=1 Тогда
........НайденныйСотр = СпрСотр.ТекущийЭлемент();
КонецЕсли;

1983air Подменю пользователя
сообщение 27.09.21, 23:40
Сообщение #9

Общительный
**
Группа: Пользователи
Сообщений: 10
Спасибо сказали: 9 раз
Рейтинг: 0

Цитата(4andriy @ 27.09.21, 14:33) *
да, надо найти в договорах строку которая выбрана в поле ввода и там изменить

Так найдите. Путь похож на правильный.
Цитата(denis84 @ 27.09.21, 16:43) *
Вам необходимо в этих договорах и искать, а не в сотрудниках.

Именно!
Цитата(4andriy @ 27.09.21, 21:29) *
нашел код который наверно можно адаптировать под задачу

Предыдущий тоже можно. Думаю, даже легче и быстрее.
Или Вы ищете, кто сделает это вместо Вас?! 32000000.gif

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 25.04.24, 21:10
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!