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