витал1980
02.09.2019, 12:13
У документа продажа товаров есть реквизит ПоСчету Тип ДокументСсылка.Счет
Документ продажа вводиться на основании документа счет, нужно сделать так чтоб пользователь не поставил количество больше чем в документе основании счет. Я учусь на программиста, не опытный в обработке проведения продажи товаров вот кусок кода, который пишу для этого механизма: без этого куска, проведение все свои функции выполняет, не знаю как обратиться к счету основанию количеству, ошибки выдает, или цикл с условным не правильно построил?:
Пока ВыборкаДетальныеЗаписи.Сл� �дующий() Цикл //теперь пишем в регистр.
Если НЕ ЗначениеЗаполнено(ПоСчету) Тогда
Продолжить;
ИначеЕсли
ВыборкаДетальныеЗаписи.Ко� �ичество < = ДокументСсылка.Счет.Количе ство; //кол дока < кол в счете
Отказ = Истина;
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Нельзя";
Сообщение.Сообщить();
Иначе
Движение = Движения.РезервыНоменклат� �ры.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Рас� �од;
Движение.Период = Дата;
Движение.Номенклатура = ВыборкаДетальныеЗаписи.Но� �енклатура;
Движение.Склад = Склад;
Движение.ПоСчету = Ссылка;
Движение.Резерв = ВыборкаДетальныеЗаписи.Ко� �ичество;
КонецЕсли;
// регистр СвободныеОстатки Расход
Движение = Движения.СвободныеОстатки. Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Рас� �од;
Движение.Период = Дата;
Движение.Номенклатура = ВыборкаДетальныеЗаписи.Но� �енклатура;
Движение.Склад = Склад;
Движение.КоличествоВСвобо� �номОстатке = ВыборкаДетальныеЗаписи.Ко� �ичество;
КонецЦикла;
Без этого куска все работает если просто движения сделать, но нужны проверки.
Ошибку выдает:
{Документ.ПродажаТоваров.М� �дульОбъекта(375,48)}: Ошибка в выражении
ВыборкаДетальныеЗаписи.Ко� �ичество <<<?>> = ДокументСсылка.Счет.Количе ство; //кол дока < кол в счете (Проверка: Сервер)
{Документ.ПродажаТоваров.М� �дульОбъекта(380,9)}: Ожидается ключевое слово 'КонецЦикла' ('EndDo')
<<?>>Иначе (Проверка: Сервер)
{Документ.ПродажаТоваров.М� �дульОбъекта(388,5)}: Ожидается ключевое слово 'КонецПроцедуры' ('EndProcedure')
<<?>>КонецЕсли; (Проверка: Сервер)
{Документ.ПродажаТоваров.М� �дульОбъекта(433,31)}: Ошибка в выражении
Результат = Запрос.Выполнить(<<?>>); (Проверка: Сервер)
{Документ.ПродажаТоваров.М� �дульОбъекта(443,13)}: Обнаружено логическое завершение исходного текста модуля
КонецЦикла;<<?>> (Проверка: Сервер)
Документ продажа вводиться на основании документа счет, нужно сделать так чтоб пользователь не поставил количество больше чем в документе основании счет. Я учусь на программиста, не опытный в обработке проведения продажи товаров вот кусок кода, который пишу для этого механизма: без этого куска, проведение все свои функции выполняет, не знаю как обратиться к счету основанию количеству, ошибки выдает, или цикл с условным не правильно построил?:
Пока ВыборкаДетальныеЗаписи.Сл� �дующий() Цикл //теперь пишем в регистр.
Если НЕ ЗначениеЗаполнено(ПоСчету) Тогда
Продолжить;
ИначеЕсли
ВыборкаДетальныеЗаписи.Ко� �ичество < = ДокументСсылка.Счет.Количе ство; //кол дока < кол в счете
Отказ = Истина;
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Нельзя";
Сообщение.Сообщить();
Иначе
Движение = Движения.РезервыНоменклат� �ры.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Рас� �од;
Движение.Период = Дата;
Движение.Номенклатура = ВыборкаДетальныеЗаписи.Но� �енклатура;
Движение.Склад = Склад;
Движение.ПоСчету = Ссылка;
Движение.Резерв = ВыборкаДетальныеЗаписи.Ко� �ичество;
КонецЕсли;
// регистр СвободныеОстатки Расход
Движение = Движения.СвободныеОстатки. Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Рас� �од;
Движение.Период = Дата;
Движение.Номенклатура = ВыборкаДетальныеЗаписи.Но� �енклатура;
Движение.Склад = Склад;
Движение.КоличествоВСвобо� �номОстатке = ВыборкаДетальныеЗаписи.Ко� �ичество;
КонецЦикла;
Без этого куска все работает если просто движения сделать, но нужны проверки.
Ошибку выдает:
{Документ.ПродажаТоваров.М� �дульОбъекта(375,48)}: Ошибка в выражении
ВыборкаДетальныеЗаписи.Ко� �ичество <<<?>> = ДокументСсылка.Счет.Количе ство; //кол дока < кол в счете (Проверка: Сервер)
{Документ.ПродажаТоваров.М� �дульОбъекта(380,9)}: Ожидается ключевое слово 'КонецЦикла' ('EndDo')
<<?>>Иначе (Проверка: Сервер)
{Документ.ПродажаТоваров.М� �дульОбъекта(388,5)}: Ожидается ключевое слово 'КонецПроцедуры' ('EndProcedure')
<<?>>КонецЕсли; (Проверка: Сервер)
{Документ.ПродажаТоваров.М� �дульОбъекта(433,31)}: Ошибка в выражении
Результат = Запрос.Выполнить(<<?>>); (Проверка: Сервер)
{Документ.ПродажаТоваров.М� �дульОбъекта(443,13)}: Обнаружено логическое завершение исходного текста модуля
КонецЦикла;<<?>> (Проверка: Сервер)