Группа: Пользователи
Сообщений: 113
Спасибо сказали: 1 раз
Рейтинг: 0
Здравствуйте уважаемые программисты, подскажите пожалуйста начинающему специалисту, как скоприрорвать данные из одного реквизита справочника в другой есть два о справочника Должности и ДолжностиСКодами, в обоих есть наименование должности а код заполнен только во втором. как скопировать этот самый код из Должности в ДолжностиСКодами, заранее благодарен(в типовой конфигурации) хочу расширением сделать
Группа: Местный
Сообщений: 237
Спасибо сказали: 51 раз
Рейтинг: 0
lolmatrix @ Сегодня, 13:50
, Есть Инструменты разработчика - где то на просторах инета можно скачать, можете через этот инструмент пробовать, для текой задачи очень даже подходит.
сделал так: выборка =Справочники.Должности.Выбрать(); Пока выборка.Следующий() Цикл ЗаполняемыйОбъект =выборка.ПолучитьОбъект(); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ОКПДТР.Наименование КАК Наименование, | ОКПДТР.КОДОКПДТР КАК КОДОКПДТР |ИЗ | Справочник.ОКПДТР КАК ОКПДТР |ГДЕ | ОКПДТР.Наименование = &Наименование";
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл ЗаполняемыйОбъект.ОКПДТРКод = ВыборкаДетальныеЗаписи.КОДОКПДТР; ЗаполняемыйОбъект.Записать(); Сообщить("Заполнен:"+" "+ЗаполняемыйОбъект.Ссылка+"Код:"+ВыборкаДетальныеЗаписи.КОДОКПДТР); КонецЦикла; КонецЦикла;
Больше так не делай. Цикл в цикле очень плохой подход. Если запросом, то учи соединения. А если просто, то выведи нужный справочник в таблицу и воспользуйся универсальной обработкой загрузки табличных документов.
Группа: Пользователи
Сообщений: 113
Спасибо сказали: 1 раз
Рейтинг: 0
fly @ Вчера, 15:51
, подскажите, пожалуйста, чем он подходит и подробней про этот инструмент я в нем не совсем разобрался, в чем его преимущество
Anderson @ Вчера, 17:33
, Спасибо огромное за советы сделал так:
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Должности.Ссылка КАК Долж, | ЕСТЬNULL(Должности.Наименование, 0) КАК Наименование, | ЕСТЬNULL(ОКПДТР.КОДОКПДТР, 0) КАК КОДОКПДТР, | ЕСТЬNULL(ОКПДТР.Категория, 0) КАК Категория |ИЗ | Справочник.ОКПДТР КАК ОКПДТР | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Должности КАК Должности | ПО (Должности.Наименование = ОКПДТР.Наименование) |ГДЕ | Должности.ВведенаВШтатноеРасписание = ИСТИНА";
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Если не ВыборкаДетальныеЗаписи.Долж=Неопределено и не ТипЗнч(ВыборкаДетальныеЗаписи.Долж)=Тип("Null") тогда Об =ВыборкаДетальныеЗаписи.Долж; Нужныйэлемент= Об.ПолучитьОбъект(); Сообщить("Получил:"+Нужныйэлемент);
Группа: Местный
Сообщений: 237
Спасибо сказали: 51 раз
Рейтинг: 0
lolmatrix @ Сегодня, 10:50
, В запросе вы выбирате все Справочник.ОКПДТР и только те которые совпадают в Справочник.Должности поэтому у вас пустые строки.... меняйте на
Цитата
Справочник.Должности КАК Должности ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ОКПДТР КАК ОКПДТР ПО (ОКПДТР.Наименование = Должности.Наименование)
Цитата(lolmatrix @ 27.12.19, 6:55)
подскажите, пожалуйста, чем он подходит и подробней про этот инструмент я в нем не совсем разобрался, в чем его преимущество
начнете пользоваться - найдете преимущества, а может и нет. это не реклама, это просто то чем пользуюсь часто, посоветовали и реально помогает.
Основное - это сразу в пользовательском режиме 1с можно делать обратки, которые в обычно требовали создания внешней обработки. так же есть тот же консоль запросов, но более удобный - можно видеть результаты Временных таблиц и т.д. - чтоб посмотреть почему данные так сформировались в итоговой. и прочие вещи
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!