Я начинающий программист 1С. Получил такую задачу – добавить возможность ведения учета товаров по ФИФО, партией будет документ поступление товаров. Для написания текста пользовался статьей – [необходимо зарегистрироваться для просмотра ссылки] . Но при проверке модуля есть 3 ошибки в которых не могу разобраться.
{Документ.ПоступлениеТоваров.МодульОбъекта(148,82)}: Очікується символ ‘)’
Сообщение.Текст = “Не хватает ” + Строка(ВыборкаНоменклатура.КоличествоВДокументе<> – ВыборкаНоменклатура.КоличествоОстаток) + ” единиц номенклатуры ” + ВыборкаНоменклатура.Номенклатура + “. Проведение невозможно.”; (Перевірка: Сервер)
{Документ.ПоступлениеТоваров.МодульОбъекта(185,35)}: Очікується ключове слово ‘КонецЦикла’ (‘EndDo’)
ОсталосьСписать = ОсталосьСписать <>– КСписанию; (Перевірка: Сервер)
{Документ.ПоступлениеТоваров.МодульОбъекта(189,1)}: Очікується ключове слово ‘КонецПроцедуры’ (‘EndProcedure’)
<>КонецЦикла; (Перевірка: Сервер)
По первой там проверял количество открытых и закрытых скобок, но причина не в этом. А 2 и 3 так же не понимаю потому что цикл и процедура закрыты.
А вот сам текст -
Запрос=Новый Запрос;
Запрос.Текст=
“ВЫБРАТЬ
| ПоступлениеТоваровТовары.Номенклатура,
| СУММА(ПоступлениеТоваровТовары.Количество) КАК Количество,
| СУММА(ПоступлениеТоваровТовары.Сумма) КАК Сумма
|ПОМЕСТИТЬ ВТ
|ИЗ
| Документ.ПоступлениеТоваров.Товары КАК ПоступлениеТоваровТовары
|ГДЕ
| ПоступлениеТоваровТовары.Ссылка = &Ссылка
|
|СГРУППИРОВАТЬ ПО
| ПоступлениеТоваровТовары.Номенклатура
|;
|ВЫБРАТЬ
| ВТ.Номенклатура КАК Номенклатура,
| ВТ.Количество КАК КоличествоВДокументе,
| ВТ.Сумма КАК ВДокументе,
| ОстаткиТоваровОстатки.Партии,
| ЕСТЬNULL(ОстаткиТоваровОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток,
| ЕСТЬNULL(ОстаткиТоваровОстатки.СуммаОстаток, 0) КАК СуммаОстаток
|ИЗ
| ВТ КАК ВТ
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиТоваров.Остатки(
| &МоментВремени,
| Номенклатура В
| (ВЫБРАТЬ
| ВТ.Номенклатура
| ИЗ
| ВТ КАК ВТ)) КАК ОстаткиТоваровОстатки
| ПО ВТ.Номенклатура = ОстаткиТоваровОстатки.Номенклатура
|
|УПОРЯДОЧИТЬ ПО
| ОстаткиТоваровОстатки.Партия.МоментВремени ВОЗР
|ИТОГИ
| МАКСИМУМ(КоличествоВДокументе),
| МАКСИМУМ(СуммаВДокументе),
| СУММА(КоличествоОстаток),
| СУММА(СуммаОстаток)
|ПО
| Номенклатура”;
Запрос.УстановитьПараметр(“МоментВремени”, МоментВремени());
Запрос.УстановитьПараметр(“Ссылка”,Ссылка);
ВыборкаНоменклатура = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаНоменклатура.Следующий() Цикл
Если ВыборкаНоменклатура.КоличествоОстаток < ВыборкаНоменклатура.КоличествоВДокументе Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Не хватает " + Строка(ВыборкаНоменклатура.КоличествоВДокументе – ВыборкаНоменклатура.КоличествоОстаток) + " единиц номенклатуры " + ВыборкаНоменклатура.Номенклатура + ". Проведение невозможно.";
Сообщение.Сообщить();
Отказ = Истина;
КонецЕсли;
Если Отказ Тогда
Продолжить;
КонецЕсли;
ОсталосьСписать = ВыборкаНоменклатура.КоличествоВДокументе;
ВыборкаДетЗаписи = ВыборкаНоменклатура.Выбрать();
Пока ВыборкаДетЗаписи.Следующий() И ОсталосьСписать 0 Цикл
КСписанию = Мин(ОсталосьСписать, ВыборкаДетЗаписи.КоличествоОстаток);
СуммаСписания = ?(ВыборкаДетЗаписи.КоличествоОстаток =КСписанию,
ВыборкаДетЗаписи.СуммаОстаток,
ВыборкаДетЗаписи.СуммаОстаток/ВыборкаДетЗаписи.КоличествоОстаток * КСписанию);
НовоеДвижение = Движения.ОстаткиНоменклатуры.ДобавитьРасход();
НовоеДвижение.Период = Дата;
НовоеДвижение.Регистратор = Ссылка;
НовоеДвижение.Количество = КСписанию;
НовоеДвижение.Номенклатура = ВыборкаДетЗаписи.Номенклатура;
НовоеДвижение.Партия = ВыборкаДетЗаписи.Партия;
НовоеДвижение.Сумма = СуммаСписания;
НовоеДвижение = Движения.Продажи.Добавить();
НовоеДвижение.Активность = Истина;
НовоеДвижение.Период = Дата;
НовоеДвижение.Регистратор = Ссылка;
НовоеДвижение.Номенклатура = ВыборкаДетЗаписи.Номенклатура;
НовоеДвижение.Сумма = ВыборкаДетЗаписи.СуммаВДокументе;
НовоеДвижение.Количество = КСписанию;
НовоеДвижение.Себестоимость = СуммаСписания;
ОсталосьСписать = ОсталосьСписать – КСписанию;
КонецЦикла;
КонецЦикла;
КонецПроцедуры
Буду благодарен за помощь.
Сообщение отредактировал logist - 06.08.14, 13:17