Имя: Пароль:
1C
 
Что сделать чтобы расход не стирался?
0 dezomorf1c
 
12.03.19
11:47
Обработка Проведения. В документе сначала идет расход, затем приход. Приход стоит после расход, поэтому расход затирается
1 ДенисЧ
 
12.03.19
11:48
Код не видно. Движений тоже.
Видны одни руки из того места...
2 formista2000
 
12.03.19
11:48
(0) А может не надо? А может так и должно быть? :-/
3 dezomorf1c
 
12.03.19
11:53
Процедура ОбработкаПроведения(Отказ, Режим)
    Движения.ип_МестонахождениеОборудования.Записывать = Истина;
        
    Блокировка = новый БлокировкаДанных;
    ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.ип_МестонахождениеОборудования");
    ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
    ЭлементБлокировки.ИсточникДанных = Приборы;
    ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Оборудование", "Оборудование");
    Блокировка.Заблокировать();
    
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    ип_ВыдачаОборудования.Организация,
                   |    ип_ВыдачаОборудования.ПодрПолучатель КАК ПодрПолучатель,
                   |    ип_ВыдачаОборудованияПриборы.Оборудование,
                   |    СУММА(ип_ВыдачаОборудованияПриборы.Количество) КАК Количество,
                   |    ПРЕДСТАВЛЕНИЕ(ип_ВыдачаОборудованияПриборы.Оборудование) КАК Представление,
                   |    ип_ВыдачаОборудования.ПодрОтправительСГМЛ
                   |ПОМЕСТИТЬ ТЧ
                   |ИЗ
                   |    Документ.ип_ВыдачаОборудования.Приборы КАК ип_ВыдачаОборудованияПриборы
                   |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ип_ВыдачаОборудования КАК ип_ВыдачаОборудования
                   |        ПО ип_ВыдачаОборудованияПриборы.Ссылка = ип_ВыдачаОборудования.Ссылка
                   |ГДЕ
                   |    ип_ВыдачаОборудования.Приборы.Оборудование = &Ссылка
                   |
                   |СГРУППИРОВАТЬ ПО
                   |    ип_ВыдачаОборудованияПриборы.Оборудование,
                   |    ип_ВыдачаОборудования.Организация,
                   |    ип_ВыдачаОборудования.ПодрПолучатель,
                   |    ип_ВыдачаОборудования.ПодрОтправительСГМЛ
                   |
                   |ИНДЕКСИРОВАТЬ ПО
                   |    ПодрПолучатель
                   |;
                   |
                   |////////////////////////////////////////////////////////////////////////////////
                   |ВЫБРАТЬ
                   |    ТЧ.Организация,
                   |    ТЧ.ПодрПолучатель,
                   |    ТЧ.Оборудование,
                   |    ТЧ.Количество КАК КолДок,
                   |    ип_МестонахождениеОборудованияОстатки.КоличествоОстаток КАК КолОст,
                   |    ТЧ.ПодрОтправительСГМЛ
                   |ИЗ
                   |    ТЧ КАК ТЧ,
                   |    РегистрНакопления.ип_МестонахождениеОборудования.Остатки(
                   |            &МоментВремени,
                   |            Оборудование В
                   |                (ВЫБРАТЬ
                   |                    Т.Оборудование
                   |                ИЗ
                   |                    ТЧ КАК Т)) КАК ип_МестонахождениеОборудованияОстатки";
    
    Запрос.УстановитьПараметр("Ссылка", Ссылка);
    Запрос.УстановитьПараметр("МоментВремени", МоментВремени());
    Результат = Запрос.Выполнить();
    Выборка = Результат.Выбрать();    
    Пока Выборка.Следующий() Цикл
        Если Выборка.КолДок > Выборка.КолОст Тогда    
             Сообщение = Новый СообщениеПользователю;
             Сообщение.Текст = "Нет в наличии оборудования" + Выборка.Оборудование + "в количестве" + (Выборка.КолДок - Выборка.КолОст);
             Сообщение.Сообщить();
             Отказ = Истина;        
        КонецЕсли;
                  
        Если Отказ Тогда
            Продолжить;
        КонецЕсли;
        
    Для Каждого ТекСтрокаПриборы Из Приборы Цикл
        Движение = Движения.ип_МестонахождениеОборуд.Добавить();
        Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
        Движение.Период = Дата;
        Движение.Организация = Выборка.Организация;
        Движение.Подразделение = Выборка.ПодрПолучатель;
        Движение.Оборудование = Выборка.Оборудование;
        Движение.Количество = Выборка.КолДок;
    КонецЦикла;
    
    КонецЦикла;    
    Для Каждого ТекСтрокаПриборы Из Приборы Цикл
        Движение = Движения.ип_МестонахождениеОборудования.Добавить();
        Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
        Движение.Период = Дата;
        Движение.Организация = ВыборкаОрганизация;
        Движение.Подразделение = Выборка.ПодрОтправительСГМЛ;
        Движение.Оборудование = ТекСтВыборкарокаПриборы.Оборудование;
        Движение.Количество = Выборка.КолДок;
    КонецЦикла;

  
    //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры
4 dezomorf1c
 
12.03.19
11:54
(1) код предоставил
5 formista2000
 
12.03.19
11:56
(3) Ты и правда - дезоморфинщик что ли? :-/
6 dezomorf1c
 
12.03.19
11:58
(5) в  1с -да
7 JeHer
 
12.03.19
12:09
Нуачо, ИБД налицо
8 dezomorf1c
 
12.03.19
12:16
все, можете не писать. я вижу много ошибок. извините за беспокойство
9 JeHer
 
12.03.19
12:17
ИБД - это имитация бурной деятельности, а не то, что ты подумал
10 Вафель
 
12.03.19
12:38

Движения.ип_МестонахождениеОборуд.Записывать = Истина;
11 Дмитрий
 
12.03.19
13:07
приход из цикла выними
12 Дмитрий
 
12.03.19
13:08
(11) цикл с проведением прихода из цикла, который непонятно для чего
13 dezomorf1c
 
12.03.19
13:09
(9) я на самом деле вообще не понял