//Процедура КонтрагентПриИзменении(Элемент)
// Если Не КонтактноеЛицо.Пустая()Тогда
// Если Контрагент<>КонтактноеЛицо.Владелец Тогда
// КонтактноеЛицо=Справочники.КонтактныеЛица.ПустаяСсылка();
// КонецЕсли;
// КонецЕсли;
// КонецПроцедуры
//Процедура ТоварыСуммаПриИзменении(Элемент)
// //расчет суммы строки табличной части
// СтрочкаТЧ=ЭлементыФормы.Товары.ТекущиеДанные;
// СтрочкаТЧ.Сумма=СтрочкаТЧ.Цена*СтрочкаТЧ.Количество.
//КонецПроцедуры
Процедура ТоварыНоменклатураПриИзменении(Элемент)
СтрочкаТЧ=ЭлементыФормы.Товары.ТекущиеДанные;
СтрочкаТЧ.Цена=СтрочкаТЧ.Номенклатура.ЦенаПокупки;
Товары.КоличествоПриИзменении(Элемент);
КонецПроцедуры
Процедура Печать(Элемент)
//{{_КОНСТРУКТОР_ПЕЧАТИ_ЭЛЕМЕНТ(Печать)
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
ТабДок = Новый ТабличныйДокумент;
Макет = Документы.Приходная.ПолучитьМакет(«Печать»);
// Заголовок
Область = Макет.ПолучитьОбласть(«Заголовок»);
ТабДок.Вывести(Область);
ТабДок.ОтображатьСетку = Ложь;
ТабДок.Защита = Ложь;
ТабДок.ТолькоПросмотр = Ложь;
ТабДок.ОтображатьЗаголовки = Ложь;
ТабДок.Показать();
//}}_КОНСТРУКТОР_ПЕЧАТИ_ЭЛЕМЕНТ
КонецПроцедуры
Процедура ОткрытьИсториюНажатие(Элемент)
ФормаСР=РегистрыСведений.Валюты.ПолучитьФормуСписка(,ЭтаФорма,»Док»+Номер);
ФормаСР.РегистрСведенийСписок.Отбор.Валюта.Значение=Валюта;
ФормаСР.РегистрСведенийСписок.Отбор.Валюта.Использование=Истина;
ФормаСР.ЗакрыватьПриЗакрытииВладельца=Истина;
Если Не ФормаСР.Открыта() Тогда
ФормаСР.РазрешитьСостояниеПрячущееся=Истина;
ФормаСР.РазрешитьСостояниеПрикрепленное=Истина;
ФормаСР.РазрешитьСоединятьОкно=Истина;
КонецЕсли;
ФормаСР.Открыть();
КонецПроцедуры
//НЕПОНЯТНО:
//Необходимо определить как обработчик события «ПриИзмененении»
//для элемента диалога, связанного с реквизитом диалога «Валюта»
Процедура ВалютаПриИзменении(Элемент)
Отбор=Новый Структура(«Валюта»,Валюта);
Запись=РегистрыСведений.Валюты.ПолучитьПоследнее(Дата.Отбор);
Курс=Запись.Курс;
КонецПроцедуры
Такой вот модуль. Если одну из первых процедур активировать, то ругается(
если в модуте несколько процедур то конфигуратор ругается: что Ожидается ключевое слово ‘КонецПроцедуры’ (‘EndProcedure’) Как этого избежать? (если в другие модули перенести не удается)
Проверь код — везде ли есть конеццикла, конецесли и т.п.
ошибка не потому что у тебя несколько процедур
После КонецПроцедуры точку с запятой убери…
расшнуровать ботиночки и снять их с глазиков
Такой вот модуль. Если одну из первых процедур активировать, то ругается(
здесь ошибка СтрочкаТЧ.Сумма=СтрочкаТЧ.Цена*СтрочкаТЧ.Количество.
а здесь в конце кто будет «;» ставить: // СтрочкаТЧ.Сумма=СтрочкаТЧ.Цена*СтрочкаТЧ.Количество.
поставь там восклицательный знак! зачем ставить скромную точку?
всем спасибо! mirosh ты был прав
Тэги:
Комментарии доступны только авторизированным пользователям
- Статус
- Закрыто для дальнейших ответов.
Guest
-
#1
Подскажите,что это за ошибка :
{Документ.РасходнаяНакладная.Модуль Документа(21)}: Ожидается ключевое слово ‘КонецПроцедуры’ (‘EndProcedure’)
Zab
-
#2
Ну, скорее всего у тебя есть «Процедура Хххххх()» но нет «КонецПроцедуры», или написано с ошибкой. Хотя, иногда она вылетает и по другим причинам, но тогда надо сначала поправить предыдущие ошибки, и эта уходит сама-собой.
Guest
-
#3
На этом заострял внимание, всё есть. Думаю какая-то не синтакс. ошибка, а логическая. Это разбирал пошаговый пример, там взял этот код, всё перепроверил, должен документ проводиться, но не проводится, и выдаёт не ошибку,а это сообщение:
{Документ.РасходнаяНакладная.Модуль Документа(21)}: Ожидается ключевое слово ‘КонецПроцедуры’ (‘EndProcedure’)
Isabela
-
#4
а что, синтакс-контроль модуля ошибок не выдает ?
jcnby
-
#5
Хм- логическая выскакивает походу при работе в самой программе. Перепроверь модуль чтобы по 2 раза не стояли слова типа «Процедура» и т.д. — ибо может при копировании ( т.к. текст брал с примера) мог либо что-нить потерять либо лишнего добавить .
Guest
-
#6
Вот начало кода:
Процедура ОбработкаПроведения()
РегОст=СоздатьОбъект(«Регистр.ОстаткиТоваров»);
Если СравнитьТА()=-1 Тогда
// Проверяем, не проводится ли документ ранее точки актуальности итогов
РегОст.ВременныйРасчет(1);
РассчитатьРегистрыНа(ТекущийДокумент());
КонецЕсли;
// Проверка на наличие на остатке
ВыбратьСтроки();
ФлагОтказа=0;
Пока (ПолучитьСтроку()>0) Цикл
Остат=РегОст.СводныйОстаток(Склад,Товар,Сорт,,»Количество»);
Если Остат
Сообщить(«Нет товара № «
+СокрЛП(Товар.Код)+»/»
+СокрЛП(Сорт.Наименование)+» в колич. «
+КолО+» (имеется «+Остат+»)»);
ФлагОтказа=1;
КонецЕсли;
КонецЦикла;Вот на этой строке выдаёт сообщение:{Документ.РасходнаяНакладная.Модуль Документа(21)}: Ожидается ключевое слово ‘КонецПроцедуры’ (‘EndProcedure’)
LSH
-
#7
Варианта 3:
1. Либо не хватает ключевого слова КонецПроцедуры (после твоего модуля)
2. Либо оно есть, но написано КонецПроцедуры; (точка с запятой не нужны)
3. Что такое:
Во-первых, в 1С нельзя использовать эту Си’шную конструкцию. Тут обязательно надо указывать условие.
Во вторых, где ключевое слово Тогда?
Наверное, должно быть так:
Код:
Если Остат = 0 Тогда
Сообщить(...
Guest
-
#8
Если Остат = Кол0 Тогда
Сообщить(…
Всё понял,просто был невнимателен,поставил вот так и всё заработало.Спасибо!
FAETON1981
-
#9
Процедура ОбработкаПроведения()
//длог за поставленный товар возрос
Регистр.Взаиморасчеты.Контрагент=Поставщик;
Регистр.Взаиморасчеты.Договор=Договор;
Регистр.Сумму=Итог(«Сумма»);
Регистр.Взаиморасчеты.ФлагДвижения=1;
Регистр.Взаиморасчеты.ДвижениеПриходВыполнить();
//по кождой строке
Регистр.ОстаткиТоваров.Склад=Склад;
Регистр.ОстаткиТоваров.Товар=Товар;
Регистр.ОстаткиТоваров.Сорт=Сорт;
Регистр.ОстаткиТоваров.Партия=ТекущийДокумент();
Регистр.ОстаткиТоваров.Количество=КолО;
Регистр.ОстаткиТоваров.СуммаП=Сумма;
Регистр.ОстаткиТоваров.СуммаД=Сумма;
Регистр.ОстаткиТоваров.ФлагДвижения=1;
Регистр.ОстаткиТоваров.ПривязыватьСтроку(НомерСтроки);
//команда ПривязыватьСтроку() к каждой записи по движению регистра
//указывается какя имено строка доакумента произвела это движения
Регистр.ОстаткиТоваров.ДвижениеПриходВыполнить();
//запись о росте товарооборота
Регистр.ОборотыТоварав.Склад=Склад;
Регистр.ОборотыТоваров.Товар=Товар;
Регистр.ОборотыТоваров.Сорт=Сорт;
Регистр.ОборотыТоваров.Количество=КолО;
Регистр.ОборотыТоваров.СуммаУ=Сумма;
Регистр.ОборотыТоваров.ФлагДвижения=1;
Регистр.ОборотыТоваров.ПривязыватьСтроку(НомерСтроки);
Регистр.ОборотыТоваров.ДвижениеВыполнить();
//оборотный регистр движения
КонецЦикла;
КонецПроцедуры
1с выдает {Документ.ПриходнаяНакладная.Модуль Документа(33)}: Ожидается ключевое слово ‘КонецПроцедуры’ (‘EndProcedure’)
проверел 100 раз не могу найти ошибку помогите плиз
LSH
-
#10
<!—QuoteBegin-FAETON1981+31:10:2007, 14:12 —>
<span class=»vbquote»>(FAETON1981 @ 31:10:2007, 14:12 )</span><!—QuoteEBegin—>…
Регистр.ОборотыТоваров.ФлагДвижения=1;
Регистр.ОборотыТоваров.ПривязыватьСтроку(НомерСтроки);
Регистр.ОборотыТоваров.ДвижениеВыполнить();
//оборотный регистр движения
КонецЦикла; — это лишнее
КонецПроцедуры
[snapback]83770″ rel=»nofollow» target=»_blank[/snapback]
[/quote]
Или даже вот так правильно:
<!—QuoteBegin-FAETON1981+31:10:2007, 14:12 —>
<span class=»vbquote»>(FAETON1981 @ 31:10:2007, 14:12 )</span><!—QuoteEBegin—>Процедура ОбработкаПроведения()
//длог за поставленный товар возрос
Регистр.Взаиморасчеты.Контрагент=Поставщик;
Регистр.Взаиморасчеты.Договор=Договор;
Регистр.Сумму=Итог(«Сумма»);
Регистр.Взаиморасчеты.ФлагДвижения=1;
Регистр.Взаиморасчеты.ДвижениеПриходВыполнить();
//по кождой строке
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл
Регистр.ОстаткиТоваров.Склад=Склад;
Регистр.ОстаткиТоваров.Товар=Товар;
Регистр.ОстаткиТоваров.Сорт=Сорт;
Регистр.ОстаткиТоваров.Партия=ТекущийДокумент();
Регистр.ОстаткиТоваров.Количество=КолО;
Регистр.ОстаткиТоваров.СуммаП=Сумма;
Регистр.ОстаткиТоваров.СуммаД=Сумма;
Регистр.ОстаткиТоваров.ФлагДвижения=1;
Регистр.ОстаткиТоваров.ПривязыватьСтроку(НомерСтроки);
//команда ПривязыватьСтроку() к каждой записи по движению регистра
//указывается какя имено строка доакумента произвела это движения
Регистр.ОстаткиТоваров.ДвижениеПриходВыполнить();
//запись о росте товарооборота
Регистр.ОборотыТоварав.Склад=Склад;
Регистр.ОборотыТоваров.Товар=Товар;
Регистр.ОборотыТоваров.Сорт=Сорт;
Регистр.ОборотыТоваров.Количество=КолО;
Регистр.ОборотыТоваров.СуммаУ=Сумма;
Регистр.ОборотыТоваров.ФлагДвижения=1;
Регистр.ОборотыТоваров.ПривязыватьСтроку(НомерСтроки);
Регистр.ОборотыТоваров.ДвижениеВыполнить();
//оборотный регистр движения
КонецЦикла; //Тогда это оставляем.
КонецПроцедуры
[snapback]83770″ rel=»nofollow» target=»_blank[/snapback]
[/quote]
FAETON1981
-
#11
Спасибо большое все получилось
FAETON1981
-
#12
Извените последний вопрос тож самое
Процедура Печать()
Таб=СоздатьОбъект(«Таблица»);
Таб.ИсходнаяТаблица(«Таблица»);
Таб.ВывестиСекцию(«Шапка»);
ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
НС=НомерСтроки;
//атрибут НомерСтроки возвпащает номер текущей строки
//табличной части
Таб.ВывестиСеуцию(«Строка»);
КонецЦикла;
ИтогПр=Формат(Итог(«Сумма»),»ЧПДС»);
//в переменую ИтогПр выводим сумму прописью
Таб.ВывестиСекцию(«Подвал»);
Таб.ТолькоПросмотр(1);
Таб.ПараметрыСтраницы(1,100,1);
Таб.Показать(«»);
КонецПроцедуры
{Документ.ПриходнаяНакладная.Форма.Модуль(61)}: Ожидается ключевое слово ‘КонецПроцедуры’ (‘EndProcedure’)
kaa
-
#13
Для: FAETON1981
Ошибок невижу скопруйте полностью строку сообщения с ошибкой
FAETON1981
-
#14
<<?>>Процедура Печать()
{Документ.ПриходнаяНакладная.Форма.Модуль(61)}: Ожидается ключевое слово ‘КонецПроцедуры’ (‘EndProcedure’)
<<?>>Процедура Печать()
{Документ.ПриходнаяНакладная.Форма.Модуль(61)}: Ожидается ключевое слово ‘КонецПроцедуры’ (‘EndProcedure’)
b00tch
-
#15
смотри предыдущую процедуру…
vbs
-
#16
а может быть вот этот монстр мешает
Таб.ВывестиСеуцию(«Строка»); ?
FAETON1981
-
#17
Нет Таб.ВывестиСеуцию(«Строка»); не мешает
Как может влиять предидущие процедуры на эту
jj_mail
-
#18
В предыдущей процедуре не закрыт цикл, или если, и т.д.
- Статус
- Закрыто для дальнейших ответов.
Обучение наступательной кибербезопасности в игровой форме. Начать игру!
1 |
|
Выявление ошибок28.07.2007, 13:13. Показов 29787. Ответов 17
Подскажите,что это за ошибка : {Документ.РасходнаяНакладная.Модуль Документа(21)}: Ожидается ключевое слово КонецПроцедуры (EndProcedure) |
0 / 0 / 0 Регистрация: 11.11.2005 Сообщений: 584 |
|
28.07.2007, 16:48 |
2 |
Ну, скорее всего у тебя есть «Процедура Хххххх()» но нет «КонецПроцедуры», или написано с ошибкой. Хотя, иногда она вылетает и по другим причинам, но тогда надо сначала поправить предыдущие ошибки, и эта уходит сама-собой.
0 |
28.07.2007, 17:12 |
3 |
На этом заострял внимание, всё есть. Думаю какая-то не синтакс. ошибка, а логическая. Это разбирал пошаговый пример, там взял этот код, всё перепроверил, должен документ проводиться, но не проводится, и выдаёт не ошибку,а это сообщение: |
0 / 0 / 0 Регистрация: 15.05.2007 Сообщений: 152 |
|
28.07.2007, 21:31 |
4 |
а что, синтакс-контроль модуля ошибок не выдает ?
0 |
0 / 0 / 0 Регистрация: 14.07.2007 Сообщений: 142 |
|
29.07.2007, 12:57 |
5 |
Хм- логическая выскакивает походу при работе в самой программе. Перепроверь модуль чтобы по 2 раза не стояли слова типа «Процедура» и т.д. — ибо может при копировании ( т.к. текст брал с примера) мог либо что-нить потерять либо лишнего добавить .
0 |
29.07.2007, 20:57 |
6 |
Вот начало кода: |
0 / 0 / 0 Регистрация: 10.07.2017 Сообщений: 350 |
|
30.07.2007, 00:20 |
7 |
Варианта 3: 1. Либо не хватает ключевого слова КонецПроцедуры (после твоего модуля) Во-первых, в 1С нельзя использовать эту Сишную конструкцию. Тут обязательно надо указывать условие. Код Если Остат = 0 Тогда Сообщить(...
0 |
30.07.2007, 20:26 |
8 |
Если Остат = Кол0 Тогда Всё понял,просто был невнимателен,поставил вот так и всё заработало.Спасибо! |
FoyTOm1981 |
|
30.10.2007, 13:25 |
9 |
Процедура ОбработкаПроведения() |
0 / 0 / 0 Регистрация: 10.07.2017 Сообщений: 350 |
|
30.10.2007, 13:35 |
10 |
<!—QuoteBegin-FAETON1981+31:10:2007, 14:12 —> Или даже вот так правильно:
0 |
FoyTOm1981 |
|
30.10.2007, 13:54 |
11 |
Спасибо большое все получилось |
FoyTOm1981 |
|
30.10.2007, 15:15 |
12 |
Извените последний вопрос тож самое {Документ.ПриходнаяНакладная.Форма.Модуль(61)}: Ожидается ключевое слово КонецПроцедуры (EndProcedure) |
0 / 0 / 0 Регистрация: 22.04.2010 Сообщений: 38 |
|
30.10.2007, 15:27 |
13 |
Для: FAETON1981
0 |
FoyTOm1981 |
|
30.10.2007, 15:30 |
14 |
<<?>>Процедура Печать() |
0 / 0 / 0 Регистрация: 16.07.2007 Сообщений: 170 |
|
30.10.2007, 16:46 |
15 |
смотри предыдущую процедуру…
0 |
0 / 0 / 1 Регистрация: 22.06.2013 Сообщений: 9 |
|
30.10.2007, 22:22 |
16 |
а может быть вот этот монстр мешает
0 |
FoyTOm1981 |
|
31.10.2007, 08:27 |
17 |
Нет Таб.ВывестиСеуцию(«Строка»); не мешает Как может влиять предидущие процедуры на эту |
0 / 0 / 0 Регистрация: 25.02.2007 Сообщений: 88 |
|
31.10.2007, 08:51 |
18 |
В предыдущей процедуре не закрыт цикл, или если, и т.д.
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
31.10.2007, 08:51 |
Помогаю со студенческими работами здесь Выявление ошибки выявление alphaBlend Выявление ошибки Выявление ошибки компиляции Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 18 |
Здравствуйте уважаемые,возник вопрос по ошибке в процедуре,изучаю программирование по книге Радченко «Практическое пособие разработчика.Примеры и типовые приемы» и делал все по примеру как написано в книге и тут бац,в коде пока не разбираюсь достаточно чтобы понять причину ошибки сам.Текст ошибки и сама процедура ниже,помогите пожалуйста понять причину ошибок.
{Документ.ОказаниеУслуги.МодульОбъекта(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.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Сообщение = Новый СообщениеПользователю();
Сообщение.Текст = «Не хватает » + Строка(- ВыборкаДетальныеЗаписи.КоличествоОстаток) +
» единиц материала «»» + ВыборкаДетальныеЗаписи.Материал + «»»»;
» из набора свойств «»» + ВыборкаДетальныеЗаписи.НаборСвойств + «»»»;
Сообщение.Сообщить();
Отказ = Истина;
КонецЦикла;
КонецЕсли;
#КонецОбласти
КонецПроцедуры