Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Расходная накладная (при проведении проверить...)
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.1 (8.0)
bodka
При проведении расходной накладной необходимо в первую очередь контролировать , хватает ли товара вообще. Если нет – выдавать соответствующее предупреждение с указанием количества нехватки и не позволять проводить документ. Вот что я добавил в модуль:

Процедура ОбработкаПроведения(Отказ, Режим)
    
    Если Количество > ТекСтрокаТовары.Количество Тогда
        Сообщить ( Количество - ТекСтрокаТовары);
        Отказ = Истина;
    Иначе
    
    //{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
    Для Каждого ТекСтрокаТовары Из Товары Цикл
        // регистр ОстаткиТовара Расход
        Движение = Движения.ОстаткиТовара.Добавить();
        Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
        Движение.Период = Дата;
        Движение.Товар = ТекСтрокаТовары.Товар;
        Движение.Склад = Склад;
        Движение.Количество = ТекСтрокаТовары.Количество;
        Движение.Сумма = ТекСтрокаТовары.Сумма;
    КонецЦикла;
    КонецЕсли;
    //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры



Вот ошибкаи:
{Документ.РасходнаяНакладная(4,14)}: Переменная не определена (Количество)
Сообщить ( <<?>>Количество - ТекСтрокаТовары);
{Документ.РасходнаяНакладная(3,20)}: Переменная не определена (ТекСтрокаТовары)
Если Количество > <<?>>ТекСтрокаТовары.Количество Тогда
{Документ.РасходнаяНакладная(4,27)}: Переменная не определена (ТекСтрокаТовары)
Сообщить ( Количество - <<?>>ТекСтрокаТовары);

Подскажите пожалуйста где нужно исправить?
Ardi
Цитата(bodka @ 24.05.11, 20:28) необходимо зарегистрироваться для просмотра ссылки
Подскажите пожалуйста где нужно исправить?

В ДНК.
bodka
x
mister-x
Цитата
если не можешь помочь
У нас звертаються на Ви.
Платформа сама каже: в стрічці
Сообщить ( Количество - ТекСтрокаТовары);

Цитата
Переменная не определена (Количество)
Цитата
Переменная не определена (ТекСтрокаТовары)



Сообщить ( Количество - ТекСтрокаТовары);
від кількості (як так думаю тут це малось на увазі) віднімати цілу стрічку в результаті отримаємо уявну величину 12201689.gif
Ardi
Цитата(bodka @ 24.05.11, 20:44) необходимо зарегистрироваться для просмотра ссылки
если не можешь помочь, то зачем вообще писать ...

Я на самом деле очень хочу помочь и откровенно указываю где проблема - в ДНК.
Batchir
bodka, может ну его это программирование и в отпуск на море пиво пить?

А если серьёзно, то что Вы добавили при проверке синтаксиса вообще должно было сносить конфигуратор 1С и автоматом убивать право пользователя на конфигурирование, ну или по меньшей мере 1С должна была выдать другое сообщение с ошибками типа:
АЛАРМ !!! АЛАРМ !!! ФАТАЛЬНАЯ ОШИБКА ПРИ КОМПИЛЯЦИИ КОДА ...
logist
Процедура ОбработкаПроведения(Отказ, Режим)
    Для Каждого ТекСтрокаТовары Из Товары Цикл
    Если Количество > ТекСтрокаТовары.Количество Тогда
        Сообщить ( Количество - ТекСтрокаТовары);
        Отказ = Истина;
    Иначе
        // регистр ОстаткиТовара Расход
        Движение = Движения.ОстаткиТовара.Добавить();
        Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
        Движение.Период = Дата;
        Движение.Товар = ТекСтрокаТовары.Товар;
        Движение.Склад = Склад;
        Движение.Количество = ТекСтрокаТовары.Количество;
        Движение.Сумма = ТекСтрокаТовары.Сумма;
    КонецЕсли;
    КонецЦикла;
КонецПроцедуры


Только это все равно работать не будет, т.к. нужно в "Количество" запихнуть таки остаток. А поскольку Вы этого не предусмотрели изначально, то соглашусь с Ardi, программирование это не Ваше.
bodka
Большое спасибо за ответ. А по поводу моих способностей - все мы когда-то начинали, у всех были ошибки. И конечно же остануться "издеватели" над новичками. Такой менталитет наверное...
И куда запихнуть таки остаток? Если можно, то объясните пожалуйста
П.С. Я только начал заниматься по книге (Практическое пособие разработчика)
logist
Цитата(bodka @ 25.05.11, 13:56) необходимо зарегистрироваться для просмотра ссылки
все мы когда-то начинали, у всех были ошибки.

Все начинали по разному. И по ошибкам можно сделать выводы как человек к этому относится.

Цитата(bodka @ 25.05.11, 13:56) необходимо зарегистрироваться для просмотра ссылки
И куда запихнуть таки остаток? Если можно, то объясните пожалуйста

Я то объясню но вот как Вы будете это реализовывать....
В начале процедуры надо написать запрос (используя две таблицы) который выберет остатки по нужным товарам в одну таблицу и сведет с таблицей товаров в самом документе. А дальше уже имеющийся цикл нужно закурить на проверку таблицы документа и таблицы остатков на предмет наличия остатков... Как-то так
meverikxp
Цитата(bodka @ 25.05.11, 13:56) необходимо зарегистрироваться для просмотра ссылки
Большое спасибо за ответ. А по поводу моих способностей - все мы когда-то начинали, у всех были ошибки. И конечно же остануться "издеватели" над новичками. Такой менталитет наверное...
И куда запихнуть таки остаток? Если можно, то объясните пожалуйста
П.С. Я только начал заниматься по книге (Практическое пособие разработчика)

Если я правильно понял ваша конфигурация далеко не стандартная, а только начальные наброски.
Посоветую Вам просмотреть обучающие видео Павла Чистова вот ссылка:
необходимо зарегистрироваться для просмотра ссылки
По поводу остатков и количества описываются в видео уроке" Подготовка к сертификации 1С:Специалист по платформе 8", но могу и ошибаться давно смотрел.


Также просмотрите уроки от spec8.ru необходимо зарегистрироваться для просмотра ссылки
Batchir
С этого нужно было начинать. Мы всё-таки не уравнения здесь решаем, а реальные проблемы и задачи.

Для контроля остатков напишите отдельную функцию
Функция должна быть общедоступной, т.к. мало ли в каком документе ещё будете выполнять контроль, поэтому функцию желательно описать в модуле самого регистра (можете поглянуть в типовые решения).

Сами остатки получайте с помощью запроса только сразу по всем товарам, а не по каждой строке документа и уже потом контролируйте остатки
mister-x
Цитата
П.С. Я только начал заниматься по книге (Практическое пособие разработчика)
мабуть ви пропустили дещо, оскільки механізм перевірки залишків товару на складі у цій книзі пояснюється
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.