Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Предупреждение о отрицат.остатках в расх.накл.
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
inna.innainna84
// =============================== 
                                                        
      Процедура ОСТАТОК()  
    
  ВыбратьСтроки();
  Пока получитьСтроку()=1 Цикл

    Остаток = глКонтрольОстатка(Контекст,ОстаткиТоваров,РезервыТоваров);      
    Если Остаток <0 Тогда
     Предупреждение("ВНИМАНИЕ ОТРИЦАТЕЛЬНЫЕ ОСТАТКИ!!!!!");
  Сообщить(Товар);
  Сообщить(Остаток);
        КонецЕсли;      
  КонецЦикла;
  
    КонецПроцедуры    



// ===============================

1с7.7 ТИС
Подскажите пожалуйста все ли верно. Процедуру установила при открытии и при закрытии расходной накладной.
Единственное, что не нравиться это при вновь открытом документе запрашивает - сохранить документ. Как это можно устранить?
mister-x
Краще таку перевірку помістити при проведенні док-ту.
sava1
Цитата(inna.innainna84 @ 22.03.16, 0:16) необходимо зарегистрироваться для просмотра ссылки
Как это можно устранить?

У Вас либо в документе есть реквизит Остаток, либо Функция глКонтрольОстатка(.... изменяет что-то в Контексте.
Sharzem
Цитата(sava1 @ 22.03.16, 11:41) необходимо зарегистрироваться для просмотра ссылки
У Вас либо в документе есть реквизит Остаток

100 % есть - в табличной форме. Хотят видеть остаток товара на момент открытия Формы (только вот не понятным остается вопрос: "Зачем делать это ПриЗакрытии() ?") и для этих целей завели реквизит табличной формы faceoff.gif

inna.innainna84, если конкретно ответом на Ваш вопрос то:
1. Так делать в Предопределенных процедурах ПриОткрытии() и ПриЗакрытии() не рекомендуется (Вы можете себе представить сколько времени будет уходить на то что-бы открыть и закрыть такой документ когда в нем будет 5000 или более строк ?).
2. Возможность такой "манипуляции" реализуется, можно и встроенными средствами 7.7., и с использованием внешних компонент.
(Например: Формекс может предоставить возможность вывода доп. информации в табличное поле и в т.ч. произвести СбросМодифицированности(), но это делается совсем не так как Вы это реализовали.)
3. И последнее, если уж так реализовано, то в начале процедуры необходимо добавить проверку:
Если Проведен() = 1 Тогда Возврат; КонецЕсли;

в таком случае ваш реквизит "Остаток" останется не измененным (поскольку не будет происходить заполнение табличного поля, Ваша процедура не отработает) и модификация Формы не произойдет (т.е. не будет вопросов о пересохранении или перепроведении).

Если Вас такой вариант не устраивает и Вы откликнетесь, возможно Мы Вам более детальней опишем как правильней реализовать Вашу задачку без граблей. (Я думаю что дальше продолжать не стоит, это новая тема)
volodya1122
Цитата(sava1 @ 22.03.16, 11:41) необходимо зарегистрироваться для просмотра ссылки
У Вас либо в документе есть реквизит Остаток


Краще в табличну частину помістити не реквізит документа "Остаток"., а текстову колонку "Остаток" з формулою
глКонтрольОстатка(Контекст,ОстаткиТоваров,РезервыТоваров)


я в себе так реалізував, і лишніх питань 1С не задає.....

Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.