Старый 13.07.2016, 17:48   #1
innainna84
Новичок
 
Регистрация: 19.12.2011
Сообщений: 14
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
innainna84 пока не определено
По умолчанию Проблема с обменником Мод. Помогите пожалуйста

ЕстьЗначение=Спр.НайтиПоРеквизиту("IDD",Стр,1); неверное имя реквизита

//__________________________________________________ ___________________________

//Функция возвращает объект 1С из строкового представления,

//полученного функцией ПолучитьПредставлениеОбъекта

Функция ПолучитьОбъект(Стр,УстТип,ЕстьЗначение)

Перем Спр;

Тип=ОЛЕ.ТипЗначения;

УстТип=ОЛЕ.УстанавливатьТип*Тип;

ЕстьЗначение=1;

Если Тип=0 Тогда

ЕстьЗначение=-1;

УстТип=0;

Возврат "";

ИначеЕсли Тип=1 Тогда

Возврат Число(Стр);

ИначеЕсли Тип=2 Тогда

Стр=СтрЗаменить(Стр,РазделительСтрокМОД,Разделител ьСтрок);

Возврат Стр;

ИначеЕсли Тип=3 Тогда

Возврат Дата(Число(Стр));

КонецЕсли;



Если Сокрлп(Стр)="" Тогда

ЕстьЗначение=-1;//Значения и не должно быть - т.е. передано пустым

Возврат "";

ИначеЕсли Тип=10 Тогда //Перечисление

Попытка

Пер=Перечисление.ПолучитьАтрибут(ОЛЕ.ВидЗначения);

Возврат Пер.ЗначениеПоИдентификатору(Стр);

Исключение

Сообщить(ОписаниеОшибки()+" ("+ОЛЕ.ВидЗначения+", "+Стр+")","!");

Возврат "";

КонецПопытки;

ИначеЕсли Тип=11 Тогда //Справочник

Вид=Сокрлп(ОЛЕ.ВидЗначения);

Если Вид="" Тогда

//не задан вид - выполняем длительную процедуру поиска объекта по все базе!!!

Для А=1 По Метаданные.Справочник() Цикл

Если Метаданные.Справочник(А).Идентификатор="Периферийн ыеБазы" Тогда

Продолжить;

КонецЕсли;

Спр=СоздатьОбъект("Справочник."+Метаданные.Справоч ник(А).Идентификатор);

ЕстьЗначение=Спр.НайтиПоРеквизиту("IDD",Стр,1);

Если ЕстьЗначение=1 Тогда

Возврат Спр.ТекущийЭлемент();

КонецЕсли;

КонецЦикла;

Возврат "";

КонецЕсли;

Попытка

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

Исключение



ЕстьЗначение=-1;

Возврат "";

КонецПопытки;



ЕстьЗначение=Спр.НайтиПоРеквизиту("IDD",Стр,1);

Если ЕстьЗначение=0 Тогда

ГлобСписокВторогоЦикла.ДобавитьЗначение(Стр);

КонецЕсли;

Возврат Спр.ТекущийЭлемент();

ИначеЕсли Тип=12 Тогда //Документ

Док=СоздатьОбъект("Документ");

ЕстьЗначение=НайтиДокументПоIDD(Док,Стр);

Если ЕстьЗначение=0 Тогда

ГлобСписокВторогоЦикла.ДобавитьЗначение(Стр);

КонецЕсли;

Возврат Док.ТекущийДокумент();

ИначеЕсли Тип=13 Тогда //Календарь

Возврат Календари.ПолучитьАтрибут(Стр);

ИначеЕсли Тип=14 Тогда //Вид расчета

Возврат ВидРасчета.ПолучитьАтрибут(Стр);

ИначеЕсли Тип=15 Тогда //Счет

Попытка

Счет=СоздатьОбъект("Счет."+ОЛЕ.ВидЗначения);

Рез=Счет.НайтиПоКоду(Стр);

Если Рез=0 Тогда

Сообщить("Не сопоставлен счет """+Стр+""" плана счетов """+ОЛЕ.ВидЗначения+""" базы источника!","!");

Возврат Счет.ТекущийСчет();

КонецЕсли;

Возврат Счет.ТекущийСчет();

Исключение

Сообщить("Не сопоставлен план счетов """+ОЛЕ.ВидЗначения+""" базы источника!","!");

Возврат "";

КонецПопытки;

ИначеЕсли Тип=16 Тогда //Виды субконто

Возврат ВидыСубконто.ЗначениеПоИдентификатору(Стр);

ИначеЕсли Тип=17 Тогда //План счетов

Возврат ПланыСчетов.ЗначениеПоИдентификатору(Стр);

Иначе

Возврат Стр;

КонецЕсли;

КонецФункции //ПолучитьОбъект
innainna84 вне форума   Ответить с цитированием
Старый 13.07.2016, 18:56   #2
ЯрКиев77
Местный
 
Регистрация: 20.12.2011
Сообщений: 283
Сказал(а) спасибо: 1,157
Поблагодарили 570 раз(а) в 119 сообщениях
ЯрКиев77 пока не определено
По умолчанию

Ну значит в справочнике, скорее всего, после обновления, пропал реквизит IDD.
ЯрКиев77 вне форума   Ответить с цитированием
Старый 13.07.2016, 22:00   #3
innainna84
Новичок
 
Регистрация: 19.12.2011
Сообщений: 14
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
innainna84 пока не определено
По умолчанию

Спасибо огромное .Да действительно не было в некоторых справочниках реквизита IDD.
innainna84 вне форума   Ответить с цитированием
Старый 25.07.2016, 08:40   #4
Andrey_235
Новичок
 
Регистрация: 02.04.2014
Сообщений: 1
Сказал(а) спасибо: 2
Поблагодарили 0 раз(а) в 0 сообщениях
Andrey_235 пока не определено
По умолчанию

Либо после обновления пропал IDD, либо в новые справочники, участвующие в обмене, не добавили его.
Andrey_235 вне форума   Ответить с цитированием
Старый 26.07.2016, 16:24   #5
Kerberos
Местный
 
Регистрация: 30.03.2014
Сообщений: 444
Сказал(а) спасибо: 226
Поблагодарили 708 раз(а) в 123 сообщениях
Kerberos пока не определено
По умолчанию

Цитата:
Сообщение от innainna84 Посмотреть сообщение
ЕстьЗначение=Спр.НайтиПоРеквизиту("IDD",Стр,1); неверное имя реквизита

//__________________________________________________ ___________________________

//Функция возвращает объект 1С из строкового представления,

//полученного функцией ПолучитьПредставлениеОбъекта

Функция ПолучитьОбъект(Стр,УстТип,ЕстьЗначение)

Перем Спр;

Тип=ОЛЕ.ТипЗначения;

УстТип=ОЛЕ.УстанавливатьТип*Тип;

ЕстьЗначение=1;

Если Тип=0 Тогда

ЕстьЗначение=-1;

УстТип=0;

Возврат "";

ИначеЕсли Тип=1 Тогда

Возврат Число(Стр);

ИначеЕсли Тип=2 Тогда

Стр=СтрЗаменить(Стр,РазделительСтрокМОД,Разделител ьСтрок);

Возврат Стр;

ИначеЕсли Тип=3 Тогда

Возврат Дата(Число(Стр));

КонецЕсли;



Если Сокрлп(Стр)="" Тогда

ЕстьЗначение=-1;//Значения и не должно быть - т.е. передано пустым

Возврат "";

ИначеЕсли Тип=10 Тогда //Перечисление

Попытка

Пер=Перечисление.ПолучитьАтрибут(ОЛЕ.ВидЗначения);

Возврат Пер.ЗначениеПоИдентификатору(Стр);

Исключение

Сообщить(ОписаниеОшибки()+" ("+ОЛЕ.ВидЗначения+", "+Стр+")","!");

Возврат "";

КонецПопытки;

ИначеЕсли Тип=11 Тогда //Справочник

Вид=Сокрлп(ОЛЕ.ВидЗначения);

Если Вид="" Тогда

//не задан вид - выполняем длительную процедуру поиска объекта по все базе!!!

Для А=1 По Метаданные.Справочник() Цикл

Если Метаданные.Справочник(А).Идентификатор="Периферийн ыеБазы" Тогда

Продолжить;

КонецЕсли;

Спр=СоздатьОбъект("Справочник."+Метаданные.Справоч ник(А).Идентификатор);

ЕстьЗначение=Спр.НайтиПоРеквизиту("IDD",Стр,1);

Если ЕстьЗначение=1 Тогда

Возврат Спр.ТекущийЭлемент();

КонецЕсли;

КонецЦикла;

Возврат "";

КонецЕсли;

Попытка

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

Исключение



ЕстьЗначение=-1;

Возврат "";

КонецПопытки;



ЕстьЗначение=Спр.НайтиПоРеквизиту("IDD",Стр,1);

Если ЕстьЗначение=0 Тогда

ГлобСписокВторогоЦикла.ДобавитьЗначение(Стр);

КонецЕсли;

Возврат Спр.ТекущийЭлемент();

ИначеЕсли Тип=12 Тогда //Документ

Док=СоздатьОбъект("Документ");

ЕстьЗначение=НайтиДокументПоIDD(Док,Стр);

Если ЕстьЗначение=0 Тогда

ГлобСписокВторогоЦикла.ДобавитьЗначение(Стр);

КонецЕсли;

Возврат Док.ТекущийДокумент();

ИначеЕсли Тип=13 Тогда //Календарь

Возврат Календари.ПолучитьАтрибут(Стр);

ИначеЕсли Тип=14 Тогда //Вид расчета

Возврат ВидРасчета.ПолучитьАтрибут(Стр);

ИначеЕсли Тип=15 Тогда //Счет

Попытка

Счет=СоздатьОбъект("Счет."+ОЛЕ.ВидЗначения);

Рез=Счет.НайтиПоКоду(Стр);

Если Рез=0 Тогда

Сообщить("Не сопоставлен счет """+Стр+""" плана счетов """+ОЛЕ.ВидЗначения+""" базы источника!","!");

Возврат Счет.ТекущийСчет();

КонецЕсли;

Возврат Счет.ТекущийСчет();

Исключение

Сообщить("Не сопоставлен план счетов """+ОЛЕ.ВидЗначения+""" базы источника!","!");

Возврат "";

КонецПопытки;

ИначеЕсли Тип=16 Тогда //Виды субконто

Возврат ВидыСубконто.ЗначениеПоИдентификатору(Стр);

ИначеЕсли Тип=17 Тогда //План счетов

Возврат ПланыСчетов.ЗначениеПоИдентификатору(Стр);

Иначе

Возврат Стр;

КонецЕсли;

КонецФункции //ПолучитьОбъект

Это только мне кажется, что правильное оформление кода легче воспринимать к чтению, чем большой кусок неотформатированного текста, чтобы не листать половину экрана в поиске ответа?
Код:
ЕстьЗначение=Спр.НайтиПоРеквизиту("IDD",Стр,1); неверное имя реквизита

//__________________________________________________ ___________________________

//Функция возвращает объект 1С из строкового представления,

//полученного функцией ПолучитьПредставлениеОбъекта

Функция ПолучитьОбъект(Стр,УстТип,ЕстьЗначение)

Перем Спр;

Тип=ОЛЕ.ТипЗначения;

УстТип=ОЛЕ.УстанавливатьТип*Тип;

ЕстьЗначение=1;

Если Тип=0 Тогда

ЕстьЗначение=-1;

УстТип=0;

Возврат "";

ИначеЕсли Тип=1 Тогда

Возврат Число(Стр);

ИначеЕсли Тип=2 Тогда

Стр=СтрЗаменить(Стр,РазделительСтрокМОД,Разделител ьСтрок);

Возврат Стр;

ИначеЕсли Тип=3 Тогда

Возврат Дата(Число(Стр));

КонецЕсли;



Если Сокрлп(Стр)="" Тогда

ЕстьЗначение=-1;//Значения и не должно быть - т.е. передано пустым

Возврат "";

ИначеЕсли Тип=10 Тогда //Перечисление

Попытка

Пер=Перечисление.ПолучитьАтрибут(ОЛЕ.ВидЗначения);

Возврат Пер.ЗначениеПоИдентификатору(Стр);

Исключение

Сообщить(ОписаниеОшибки()+" ("+ОЛЕ.ВидЗначения+", "+Стр+")","!");

Возврат "";

КонецПопытки;

ИначеЕсли Тип=11 Тогда //Справочник

Вид=Сокрлп(ОЛЕ.ВидЗначения);

Если Вид="" Тогда

//не задан вид - выполняем длительную процедуру поиска объекта по все базе!!!

Для А=1 По Метаданные.Справочник() Цикл

Если Метаданные.Справочник(А).Идентификатор="Периферийн ыеБазы" Тогда

Продолжить;

КонецЕсли;

Спр=СоздатьОбъект("Справочник."+Метаданные.Справоч ник(А).Идентификатор);

ЕстьЗначение=Спр.НайтиПоРеквизиту("IDD",Стр,1);

Если ЕстьЗначение=1 Тогда

Возврат Спр.ТекущийЭлемент();

КонецЕсли;

КонецЦикла;

Возврат "";

КонецЕсли;

Попытка

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

Исключение



ЕстьЗначение=-1;

Возврат "";

КонецПопытки;



ЕстьЗначение=Спр.НайтиПоРеквизиту("IDD",Стр,1);

Если ЕстьЗначение=0 Тогда

ГлобСписокВторогоЦикла.ДобавитьЗначение(Стр);

КонецЕсли;

Возврат Спр.ТекущийЭлемент();

ИначеЕсли Тип=12 Тогда //Документ

Док=СоздатьОбъект("Документ");

ЕстьЗначение=НайтиДокументПоIDD(Док,Стр);

Если ЕстьЗначение=0 Тогда

ГлобСписокВторогоЦикла.ДобавитьЗначение(Стр);

КонецЕсли;

Возврат Док.ТекущийДокумент();

ИначеЕсли Тип=13 Тогда //Календарь

Возврат Календари.ПолучитьАтрибут(Стр);

ИначеЕсли Тип=14 Тогда //Вид расчета

Возврат ВидРасчета.ПолучитьАтрибут(Стр);

ИначеЕсли Тип=15 Тогда //Счет

Попытка

Счет=СоздатьОбъект("Счет."+ОЛЕ.ВидЗначения);

Рез=Счет.НайтиПоКоду(Стр);

Если Рез=0 Тогда

Сообщить("Не сопоставлен счет """+Стр+""" плана счетов """+ОЛЕ.ВидЗначения+""" базы источника!","!");

Возврат Счет.ТекущийСчет();

КонецЕсли;

Возврат Счет.ТекущийСчет();

Исключение

Сообщить("Не сопоставлен план счетов """+ОЛЕ.ВидЗначения+""" базы источника!","!");

Возврат "";

КонецПопытки;

ИначеЕсли Тип=16 Тогда //Виды субконто

Возврат ВидыСубконто.ЗначениеПоИдентификатору(Стр);

ИначеЕсли Тип=17 Тогда //План счетов

Возврат ПланыСчетов.ЗначениеПоИдентификатору(Стр);

Иначе

Возврат Стр;

КонецЕсли;

КонецФункции //ПолучитьОбъект
Kerberos вне форума   Ответить с цитированием
Ответ

Любые журналы Актион-МЦФЭР регулярно !!! Пишите https://www.nado.in/private.php?do=newpm&u=12191 или на электронный адрес pantera@nado.ws


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите пожалуйста с ХВОЯ ОСМД 1.0.5.6 и 1.0.5.7 yul_2004 1C: Предприятие + конфигурации для Украины 6 23.11.2016 09:13
Пожалуйста, помогите!!! Не проводятся документы!!!!!СЧет 22 Тамрико 1C: Предприятие + конфигурации для Украины 4 02.10.2016 17:46
Помогите пожалуйста найти обработку для импорта налоговых накладных в 1с77 с МЕДОК sgrisha Беседка 1 21.10.2015 10:00
"Все про бухгалтерський облік" № 24 от 10.03.2006р. Помогите найти, пожалуйста ! cyberhouse Запросы на поиск литературы 3 26.06.2015 15:19
Бухгалтер&Закон 02.07.2012 – 08.07.2012, № 36 – 37 (165), помогите найти пожалуйста!! Taras_Boichuk Запросы на поиск литературы 1 17.05.2015 05:57


Текущее время: 00:29. Часовой пояс GMT +1.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot