Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
28 сен 2024, 06:21

Ошибки в процедуре (начало начал)

Автор Zorro, 15 фев 2019, 21:40

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

Zorro

Здравствуйте, начал изучать 1с программирование по книге Радченко "практическое пособие разработчика" и при внесении изменений в процедуру возникли непонятные мне ошибки, изменения вносил копированием. При закрытии окна выдал ошибки, которые ну вот не должны быть. Помогите понять причину. При необходимости могу скинуть процедуру и сами ошибки

Etherial

Так со скринов и нужно было начинать)

Отправлено с моего MI 5s через Tapatalk


Zorro

Цитата: Etherial от 15 фев 2019, 22:12
Так со скринов и нужно было начинать)

Отправлено с моего MI 5s через Tapatalk

Вы правы и я загрузил текст процедуры и сами ошибки в новом публикации от сегодняшнего дня в 14,34,может вы захотите посмотреть?

Поиск родных

Цитата: Zorro от 19 фев 2019, 18:14
Вы правы и я загрузил текст процедуры и сами ошибки в новом публикации от сегодняшнего дня в 14,34,может вы захотите посмотреть?
А можно и мне?
Публикации или редакции?
14,34, - это кто?

Zorro

Цитата: Геннадий ОбьГЭС от 20 фев 2019, 07:09
Цитата: Zorro от 19 фев 2019, 18:14
Вы правы и я загрузил текст процедуры и сами ошибки в новом публикации от сегодняшнего дня в 14,34,может вы захотите посмотреть?
А можно и мне?
Публикации или редакции?
14,34, - это кто?

Здравствуйте,вот то что у меня получилось,точнее не получилось
{Документ.ОказаниеУслуги.МодульОбъекта(30,3)}: Ожидается ключевое слово 'КонецПроцедуры' ('EndProcedure')
      <<?>>|   ОказаниеУслугиПереченьНоменклатуры.НаборСвойств"; (Проверка: Сервер)
{Документ.ОказаниеУслуги.МодульОбъекта(34,38)}: Ошибка в выражении
   РезультатЗапроса = Запрос.Выполнить(<<?>>); (Проверка: Сервер)
{Документ.ОказаниеУслуги.МодульОбъекта(151,1)}: Неопознанный оператор
<<?>>" из набора свойств """ + ВыборкаДетальныеЗаписи.НаборСвойств + """"; (Проверка: Сервер)
{Документ.ОказаниеУслуги.МодульОбъекта(154,1)}: Ожидается ключевое слово 'КонецЕсли' ('EndIf')
<<?>>КонецЦикла; (Проверка: Сервер)
{Документ.ОказаниеУслуги.МодульОбъекта(154,12)}: Обнаружено логическое завершение исходного текста модуля
КонецЦикла;<<?>> (Проверка: Сервер)


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

      КонецЦикла;
Движения.Записать();
#КонецОбласти

#Область КонтрольОстатков
Если Режим = РежимПроведенияДокумента.Оперативный Тогда
// Проверить отрицательные остатки

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

КонецЕсли;
#КонецОбласти

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



Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск