Всем привет
ошибка регистратор необъектного типа
ошибка регистратор необъектного типа
Запрос1 = Новый Запрос("ВЫБРАТЬ
| ХозрасчетныйОбороты.Регистратор КАК Регистратор,
| ХозрасчетныйОбороты.СуммаОборот КАК СуммаОборот,
| ХозрасчетныйОбороты.КоличествоОборот КАК Количество,
| ХозрасчетныйОбороты.СуммаОборот / ХозрасчетныйОбороты.КоличествоОборот КАК Цена
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.Обороты(, , Авто, Счет = &Счет, &ВидыСубконто, Субконто1 = &Номенклатура, , ) КАК ХозрасчетныйОбороты
|ГДЕ
| ХозрасчетныйОбороты.Регистратор ССЫЛКА Документ.ПередачаМатериаловВЭксплуатацию");
ВидыСубконто = Новый СписокЗначений;
ВидыСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура);
//ВидыСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.ПартииМатериаловВЭксплуатации);
//ВидыСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.РаботникиОрганизаций);
Запрос1.УстановитьПараметр("ВидыСубконто", ВидыСубконто);
Запрос1.УстановитьПараметр("Номенклатура", Номенклатура);
Запрос1.УстановитьПараметр("Счет", ПланыСчетов.Хозрасчетный.ИнвентарьИХозяйственныеПринадлежностиВЭксплуатации); //МЦ.04
РезультатЗапроса = Запрос1.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
Если ТипЗнч(Выборка.Регистратор) = Неопределено
Тогда
Продолжить;
Структура = Новый Структура("Регистратор, Цена",Выборка.Регистратор,Выборка.Цена);
КонецЕсли;
КонецЦикла;
Возврат Структура;
ПоказатьОтветы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
у вас в запросе явный отбор по Типу документа
при чем здесь проверка = Неопределено? (там даже Пустой ссылки не может быть, (кажется, не проверял))
|ГДЕ
| ХозрасчетныйОбороты.Регистратор ССЫЛКА Документ.ПередачаМатериаловВЭксплуатацию");
при чем здесь проверка = Неопределено? (там даже Пустой ссылки не может быть, (кажется, не проверял))
Пока Выборка.Следующий() Цикл // Заполняем табличную часть
Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(Выборка.Номенклатура.Description, Истина);
ФизическоеЛицо = Справочники.ФизическиеЛица.НайтиПоНаименованию(Выборка.ФизическоеЛицо.Description, Истина);
ФизическоеЛицоПолучатель = Справочники.ФизическиеЛица.НайтиПоНаименованию(Выборка.ФизическоеЛицоПолучатель.Description, Истина);
Структура = НайтиПартиюИЦенуНоменклатуры(Номенклатура);
Регистратор = Структура.Регистратор;
Цена = Структура.Цена;
РегЗапись = РегХозрасчетный.Добавить();
РегЗапись.Период = ДокОперация.Дата;
РегЗапись.Регистратор = ДокОперацияСсылка; // Ссылка на операцию
РегЗапись.Организация = ДокОперация.Организация;
РегЗапись.Содержание = "Перемещение в эксплуатации";
ПоказатьПока Выборка.Следующий() Цикл
Если ТипЗнч(Выборка.Регистратор) = Неопределено Тогда
Продолжить;
Структура = Новый Структура("Регистратор, Цена",Выборка.Регистратор,Выборка.Цена);
КонецЕсли;
КонецЦикла;
У вас функция возвращает всегда Неопределено.
Вынесите заполнение структуры из условия.
Пока Выборка.Следующий() Цикл
Если ТипЗнч(Выборка.Регистратор) = Неопределено Тогда
Продолжить;
КонецЕсли;
Структура = Новый Структура("Регистратор, Цена",Выборка.Регистратор,Выборка.Цена);
Прервать;
КонецЦикла;
ругань идет здесь вот здесь Регистратор = Структура.Регистратор;
Попытка
base = новый COMОбъект("V83.COMConnector");
//base = base.Connect("Srvr=""1C-01.corp.enstro.ru"";Ref=""BUH_IS"";Usr="+Логин+";Pwd="+Пароль+";"); // Рабочая БП
//base = base.Connect("Srvr=""1C-01"";Ref=""buh_es_copy"";Usr="+Логин+";Pwd="+Пароль+";"); // Копия БП
base = base.Connect("Srvr=""1C-01"";Ref=""ERP_ES"";Usr="+Логин+";Pwd="+Пароль+";"); // Рабочая erp
//base = base.Connect("Srvr=""1C-01.corp.enstro.ru"";Ref=""ERP_ES_copy1"";Usr="+Логин+";Pwd="+Пароль+";"); // КОпия ERP
Исключение
Возврат Неопределено;
КонецПопытки;
ТЗ = Объект.Перемещения.Выгрузить();
Сч = 0;
Для Каждого стр из ТЗ Цикл
Если стр.Выбор_ <> Истина Тогда
Продолжить;
Иначе
Сч = Сч +1;
КонецЕсли;
Запрос = base.NewObject("Запрос");
Запрос.Текст = ПрочитатьПеремещение();
Запрос.УстановитьПараметр("Номер", стр.Номер);
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
ДокОперация = Документы.ОперацияБух.СоздатьДокумент();
// ДокОперация.Дата = Стр.Дата;
ДокОперация.Дата = ТекущаяДата();
ДокОперация.Организация = Справочники.Организации.НайтиПоКоду("00-000001");
ДокОперация.Ответственный = Стр.Ответственный;
ДокОперация.Содержание = "Перемещение в эксплуатации";
ДокОперация.Комментарий = "#100223 " + Стр.Номер;
СуммаОперации = 0;
ДокОперация.Записать(РежимЗаписиДокумента.Запись);
ДокОперацияСсылка = ДокОперация.Ссылка;
РегХозрасчетный = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
РегХозрасчетный.Отбор.Регистратор.Значение = ДокОперацияСсылка;
СчетДт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("МЦ.04"); //
СчетКт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("МЦ.04");
Пока Выборка.Следующий() Цикл // Заполняем табличную часть
Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(Выборка.Номенклатура.Description, Истина);
ФизическоеЛицо = Справочники.ФизическиеЛица.НайтиПоНаименованию(Выборка.ФизическоеЛицо.Description, Истина);
ФизическоеЛицоПолучатель = Справочники.ФизическиеЛица.НайтиПоНаименованию(Выборка.ФизическоеЛицоПолучатель.Description, Истина);
Структура = НайтиПартиюИЦенуНоменклатуры(Номенклатура);
Регистратор = Структура.Регистратор;
Цена = Структура.Цена;
РегЗапись = РегХозрасчетный.Добавить();
РегЗапись.Период = ДокОперация.Дата;
РегЗапись.Регистратор = ДокОперацияСсылка; // Ссылка на операцию
РегЗапись.Организация = ДокОперация.Организация;
РегЗапись.Содержание = "Перемещение в эксплуатации";
// Дт
РегЗапись.СчетДт = СчетДт;
БухгалтерскийУчет.УстановитьСубконто(РегЗапись.СчетДт, РегЗапись.СубконтоДт, "Номенклатура", Номенклатура);
БухгалтерскийУчет.УстановитьСубконто(РегЗапись.СчетДт, РегЗапись.СубконтоДт, "ПартииМатериаловВЭксплуатации", Структура.Регистратор);
БухгалтерскийУчет.УстановитьСубконто(РегЗапись.СчетДт, РегЗапись.СубконтоДт, "РаботникиОрганизаций", ФизическоеЛицоПолучатель);
РегЗапись.КоличествоДт = Выборка.Количество;
// Кт
РегЗапись.СчетКт = СчетКт;
БухгалтерскийУчет.УстановитьСубконто(РегЗапись.СчетКт, РегЗапись.СубконтоКт, "Номенклатура", Номенклатура);
БухгалтерскийУчет.УстановитьСубконто(РегЗапись.СчетКт, РегЗапись.СубконтоКт, "ПартииМатериаловВЭксплуатации", Структура.Регистратор);
БухгалтерскийУчет.УстановитьСубконто(РегЗапись.СчетКт, РегЗапись.СубконтоКт, "РаботникиОрганизаций", ФизическоеЛицо);
РегЗапись.КоличествоКт = Выборка.Количество;
РегЗапись.Сумма = Цена * Выборка.Количество;
РегХозрасчетный.Записать();
СуммаОперации = СуммаОперации + РегЗапись.Сумма;
КонецЦикла;
ДокОперация.СуммаОперации = СуммаОперации;
ДокОперация.Записать(РежимЗаписиДокумента.Запись);
Сообщить(ДокОперацияСсылка);
КонецЦикла;
Показать
(20) Всё куда проще. Андрей Николаевич накосорезил с параметрами, оно у него в цикл выборки не попадает. Соответственно в первом случае возвращается неинициализированная (хотя и описанная в коде) переменная, а во втором - данные из неспозиционированной выборки.
Других программистов у меня для вас нет =]
Других программистов у меня для вас нет =]
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот