Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
14 Дек 2017, 01:28
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Ошибка "Поле объекта не обнаружено (Материал)  (Прочитано 3658 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Danonya

  • *
  • Сообщений: 2
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-03-04
  • Сайт: 
  • Профессия: Разработчик 1С
Здравствуйте. При выполнении оптимизации процедуры проведения документа "Оказание услуги" (по книге Радченко), написав код в модуле документа (он находится ниже) в режиме откладка при проведении документов выходит ошибка "Поле объекта не обнаружено (Материал)". Уже все перерыла,2 дня парюсь незнаю что делать. Кто может помогите:(
Базу тоже подкрепила.
Процедура ОбработкаПроведения(Отказ, Режим)

Запрос = Новый Запрос;
Если Режим = РежимПроведенияДокумента.Оперативный Тогда
Запрос.Текст  =
     "ВЫБРАТЬ
     | ОказаниеУслугиПереченьНоменклатуры.Номенклатура,
     | ОказаниеУслугиПереченьНоменклатуры.Количество,
     | ОказаниеУслугиПереченьНоменклатуры.Номенклатура.ВидНоменклатуры КАК ВидНоменклатуры,
     | ОказаниеУслугиПереченьНоменклатуры.Сумма,
     | ОстаткиМатериаловОстатки.КоличествоОстаток,
     | СтоимостьМатериаловОстатки.СтоимостьОстаток,
     | ОстаткиМатериаловОстаткиНаСкладе.КоличествоОстаток КАК КоличествоНаСкладе
     |ИЗ
     | Документ.ОказаниеУслуги.ПереченьНоменклатуры КАК ОказаниеУслугиПереченьНоменклатуры
     | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки(
     | &МоментВремени,
     | Материал В (&СписокНоменклатурыДокумента)
     | И Склад = &СкладВДокументе) КАК ОстаткиМатериаловОстаткиНаСкладе
     | ПО ОказаниеУслугиПереченьНоменклатуры.Номенклатура = ОстаткиМатериаловОстаткиНаСкладе.Материал
     | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СтоимостьМатериалов.Остатки(&МоментВремени, Материал В (&СписокНоменклатурыДокумента)) КАК СтоимостьМатериаловОстатки
     | ПО ОказаниеУслугиПереченьНоменклатуры.Номенклатура = СтоимостьМатериаловОстатки.Материал
     | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки(&МоментВремени, Материал В (&СписокНоменклатурыДокумента)) КАК ОстаткиМатериаловОстатки
     | ПО ОказаниеУслугиПереченьНоменклатуры.Номенклатура = ОстаткиМатериаловОстатки.Материал
     |ГДЕ
     | ОказаниеУслугиПереченьНоменклатуры.Ссылка = &Ссылка
     |
     |ДЛЯ ИЗМЕНЕНИЯ
     | РегистрНакопления.ОстаткиМатериалов.Остатки,
     | РегистрНакопления.СтоимостьМатериалов.Остатки";
   
     Запрос.УстановитьПараметр("СкладВДокументе", Склад);
Иначе
Запрос.Текст  =
"ВЫБРАТЬ
     | ОказаниеУслугиПереченьНоменклатуры.Номенклатура,
     | ОказаниеУслугиПереченьНоменклатуры.Количество,
     | ОказаниеУслугиПереченьНоменклатуры.Номенклатура.ВидНоменклатуры КАК ВидНоменклатуры,
     | ОказаниеУслугиПереченьНоменклатуры.Сумма,
     | ОстаткиМатериаловОстатки.КоличествоОстаток,
     | СтоимостьМатериаловОстатки.СтоимостьОстаток
     |ИЗ
     | Документ.ОказаниеУслуги.ПереченьНоменклатуры КАК ОказаниеУслугиПереченьНоменклатуры
     | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки(&МоментВремени, Материал В (&СписокНоменклатурыДокумента)) КАК ОстаткиМатериаловОстатки
     | ПО ОказаниеУслугиПереченьНоменклатуры.Номенклатура = ОстаткиМатериаловОстатки.Материал
     | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СтоимостьМатериалов.Остатки(&МоментВремени, Материал В (&СписокНоменклатурыДокумента)) КАК СтоимостьМатериаловОстатки
     | ПО ОказаниеУслугиПереченьНоменклатуры.Номенклатура = СтоимостьМатериаловОстатки.Материал
     |ГДЕ
     | ОказаниеУслугиПереченьНоменклатуры.Ссылка = &Ссылка
     |
     |ДЛЯ ИЗМЕНЕНИЯ
     | РегистрНакопления.ОстаткиМатериалов.Остатки,
     | РегистрНакопления.СтоимостьМатериалов.Остатки" ;
   КонецЕсли;
   
   Запрос.УстановитьПараметр("МоментВремени", МоментВремени());
   Запрос.УстановитьПараметр("СписокНоменклатурыДокумента", ПереченьНоменклатуры.ВыгрузитьКолонку("Номенклатура"));
   Запрос.УстановитьПараметр("Ссылка", Ссылка);
   
   ВыборкаРезультатаЗапроса = Запрос.Выполнить().Выбрать();

   Пока ВыборкаРезультатаЗапроса.Следующий() Цикл

   // Проверить остаток при оперативном проведении.
   Если Режим = РежимПроведенияДокумента.Оперативный Тогда
  Если ВыборкаРезультатаЗапроса.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.Материал Тогда
  Остаток = ?(ВыборкаРезультатаЗапроса.КоличествоОстатокНаСкладе = Null, 0, ВыборкаРезультатаЗапроса.КоличествоОстатокНаСкладе);
Если Остаток < ВыборкаРезультатаЗапроса.Количество
Тогда
Сообщить("Материала " + СокрЛП(ВыборкаРезультатаЗапроса.Номенклатура)
+ " имеется только " + Остаток);
Отказ = Истина;
Возврат;
КонецЕсли;
  КонецЕсли;
   КонецЕсли;

       // Сформировать движения.
       Если ВыборкаРезультатаЗапроса.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.Материал Тогда

           // Регистр ОстаткиМатериалов Расход.
           Движение             = Движения.ОстаткиМатериалов.Добавить();
           Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
           Движение.Период      = Дата;
           Движение.Материал    = ВыборкаРезультатаЗапроса.Номенклатура;
           Движение.Склад       = Склад;
           Движение.Количество  = ВыборкаРезультатаЗапроса.Количество;

           // Регистр СтоимостьМатериалов Расход.
           Движение             = Движения.СтоимостьМатериалов.Добавить();
           Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
           Движение.Период      = Дата;
           Движение.Материал    = ВыборкаРезультатаЗапроса.Номенклатура;
   
           // Расчитать стоимость материала.
           СтоимостьМатериала = ?(ВыборкаРезультатаЗапроса.КоличествоОстаток = Null,
          0,
          ВыборкаРезультатаЗапроса.СтоимостьОстаток / ВыборкаРезультатаЗапроса.КоличествоОстаток);
   Движение.Стоимость = СтоимостьМатериала * ВыборкаРезультатаЗапроса.Количество;
   
   // По регистру Управленческий.

   // Первая проводка: Д 62(ДебиторскаяЗадолженность) - К 90 (Капитал) - розничная сумма.
   Движение        = Движения.Управленческий.Добавить();
   Движение.СчетДт =  ПланыСчетов.Основной.ДебиторскаяЗадолженность;
   Движение.СчетКт = ПланыСчетов.Основной.Капитал;
   Движение.Период = Дата;
   Движение.Сумма  = ВыборкаРезультатаЗапроса.Сумма;
   Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Клиенты] = Клиент;

   // Вторая проводка: Д 90 (Капитал) - К 41 (Товары) - себестоимость.
   Движение = Движения.Управленческий.Добавить();
   Движение.СчетДт       = ПланыСчетов.Основной.Капитал;
   Движение.СчетКт       = ПланыСчетов.Основной.Товары;
   Движение.Период       = Дата;
   Движение.Сумма        = СтоимостьМатериала * ВыборкаРезультатаЗапроса.Количество;
   Движение.КоличествоКт = ВыборкаРезультатаЗапроса.Количество;
   Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Материалы] =
   ВыборкаРезультатаЗапроса.Номенклатура;


КонецЕсли;

// Регистр Продажи.
Движение = Движения.Продажи.Добавить();
Движение.Период = Дата;
Движение.Номенклатура = ВыборкаРезультатаЗапроса.Номенклатура;
Движение.Клиент = Клиент;
Движение.Мастер = Мастер;
Движение.Количество = ВыборкаРезультатаЗапроса.Количество;
Движение.Выручка = ВыборкаРезультатаЗапроса.Сумма;
Если ВыборкаРезультатаЗапроса.ВидНоменклатуры  =
   Перечисления.ВидыНоменклатуры.Материал Тогда
   Движение.Стоимость = СтоимостьМатериала * ВыборкаРезультатаЗапроса.Количество;
Иначе
   Движение.Стоимость = 0;
КонецЕсли;
   
КонецЦикла;

// Записать движения регистров
Движения.ОстаткиМатериалов.Записать();
Движения.СтоимостьМатериалов.Записать();
Движения.Продажи.Записать();

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


Оффлайн SitnovaMarina

  • Помогла? Скажи "Спасибо"!
  • ****
  • Сообщений: 358
  • РЕПУТАЦИЯ: 71
  • КПД: 20%
  • E-mail: Marishka0604@yandex.ru
  • Регистрация: 2014-09-12
    • Skype: Marishka0604991
  • Сайт: vk.com
  • Профессия: Программист 1С
На какую строчку кода ругается?

Скиньте скин всей ошибки (или перепишите), нажав на Подробно..
Народная мудрость: Программу встречают по интерфейсу

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
Замените по всему тексту "Материал" на "Метериал" - как у вас задано значение перечисления - и будет вам счастье ))

Оффтоп: А чего это вы под 8.1 программите?
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн Дмитрий@

  • *****
  • Сообщений: 735
  • РЕПУТАЦИЯ: 134
  • КПД: 18%
  • Ссылка на примеры работ https://yadi.sk/d/ksVluPMB
  • Регистрация: 2015-02-27
    • Skype: ShuplecovDima
  • Сайт: 
  • Профессия: Программист 1С
Проверьте перечисление "Виды номенклатуры", есть ли элемент "материал".
Проверьте регистр накопление на присутствие поля "материал".
И если можно скиньте незаархивированную базу
Ссылка на примеры работ https://yadi.sk/d/ksVluPMB

Оффлайн Danonya

  • *
  • Сообщений: 2
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-03-04
  • Сайт: 
  • Профессия: Разработчик 1С
На какую строчку кода ругается?

Скиньте скин всей ошибки (или перепишите), нажав на Подробно..

Добавлено: 04 Мар 2015, 11:44

Всем спасибо! Ошибка найдена!


Теги:
 

Закрытие месеца, ошибка при закрытие 26сч

Автор GendelfРаздел Пользователям "1С - Предприятие 8"

Ответов: 3
Просмотров: 4126
Последний ответ 26 Июл 2013, 11:00
от Gendelf
Какие ответственные лица могут быть указаны в регистре сведений "Ответственные л

Автор DDDРаздел Пользователям "1С - Предприятие 8"

Ответов: 0
Просмотров: 4308
Последний ответ 25 Ноя 2008, 11:07
от DDD
ОШИБКА 1С 8.3. Файл не найден в хранилище файлов. Возможно файл удален антивирусной программой. Обратитесь к администратору

Автор Сергей БатуринРаздел Пользователям "1С - Предприятие 8"

Ответов: 6
Просмотров: 6361
Последний ответ 18 Май 2016, 18:18
от Сергей Батурин
При попытке проведения документов по НДФЛ (справка 2 НДФЛ ) вылезает ошибка:

Автор klaus38Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 2819
Последний ответ 19 Фев 2015, 20:54
от vitasw
При входе пользователя 1с77 по RDP (Server2008) выдается ошибка и выпадает 1с77

Автор ktu78Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 1659
Последний ответ 07 Дек 2016, 09:17
от alex0402

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
178 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
51 Сообщений
alex0402
49 Сообщений
andron81_81
39 Сообщений
AIFrame
37 Сообщений
MuI_I_Ika MuI_I_Ika
34 Сообщений
BuhRust
29 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 196
  • Точка Скрытых: 0
  • Точка Пользователей: 0

Нет пользователей онлайн.

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal