Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Войти | Зарегистрироваться )




>  Выгрузка документа "Заявление-расчет в ФСС" в XML MEDOC
hamerok2
Отправлено: 22.02.22, 15:59


Молчаливый
*

Группа: Пользователи
Сообщений: 2
Регистрация: 17.05.16
Пользователь №: 50122


semt5, semt5 @ 18.03.21, 13:30 * ,
Цікавить вигрузка ФСС теж, dziaduh@gmail.com. Поділіться будь ласка, напишіть мені.
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #175371 · Ответов: 7 · Просмотров: 2558
 

>  Заказ покупателя - статус
hamerok2
Отправлено: 09.08.16, 17:09


Молчаливый
*

Группа: Пользователи
Сообщений: 2
Регистрация: 17.05.16
Пользователь №: 50122


bereznoy @ 06.11.11, 15:54 <{POST_SNAPBACK}>,
РЕализовать можно через перечисления( Перечисления.СтатусЗаказаПокупателя.Значения:Новый, ВРаботе, ЧастичноВРаботе, Изготовлено, и т.д. ) Вынести процедуру с запросом по остаткам в общий модуль и вызывать ее в документе.
Для отображения статуса на форме списка документа в табличное поле добавить "Статус".
Код в общем модуле примерно такой :

Код
Процедура УстановитьСтатусЗаказаПокупателя(ЗаказСсылка) Экспорт 
    
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ РАЗРЕШЕННЫЕ
        |    СУММА(ЕСТЬNULL(ЗаказыПокупателейОстаткиИОбороты.КоличествоПриход, 0)) КАК Запланировано,
        |    СУММА(ЕСТЬNULL(ЗаказыПокупателейОстаткиИОбороты.КоличествоКонечныйОстаток, 0)) КАК ОсталосьОтгрузить,
        |    СУММА(ЕСТЬNULL(РезервыКомпании.КоличествоОстаток, 0)) КАК Резерв,
        |    СУММА(ЕСТЬNULL(РазмещениеЗаказовПокупателей.КоличествоОстаток, 0)) КАК Заказано,
        |    СУММА(ВЫБОР
        |            КОГДА ЗаказыПокупателейОстаткиИОбороты.КоличествоКонечныйОстаток - (ЕСТЬNULL(РезервыКомпании.КоличествоОстаток, 0) + ЕСТЬNULL(РазмещениеЗаказовПокупателей.КоличествоОстаток, 0)) >= 0
        |                ТОГДА ЗаказыПокупателейОстаткиИОбороты.КоличествоКонечныйОстаток - (ЕСТЬNULL(РезервыКомпании.КоличествоОстаток, 0) + ЕСТЬNULL(РазмещениеЗаказовПокупателей.КоличествоОстаток, 0))
        |            ИНАЧЕ 0
        |        КОНЕЦ) КАК ОсталосьОбеспечить,
        |    СУММА(ЕСТЬNULL(ОстаткиТоваровКомпании.КоличествоОстаток, 0) + ЕСТЬNULL(ОстаткиТоваровКомпанииВРознице.КоличествоОстаток, 0) - ЕСТЬNULL(РезервыТоваровКомпании.КоличествоОстаток, 0) - ЕСТЬNULL(ТоварыКПередачеКомпании.КоличествоОстаток, 0)) КАК Свободно
        |ИЗ
        |    РегистрНакопления.ЗаказыПокупателей.ОстаткиИОбороты(, &ДатаАнализа, , , ЗаказПокупателя = &Заказ) КАК ЗаказыПокупателейОстаткиИОбороты
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&ДатаАнализа, ДокументРезерва = &Заказ) КАК РезервыКомпании
        |        ПО ЗаказыПокупателейОстаткиИОбороты.ХарактеристикаНоменклатуры = РезервыКомпании.ХарактеристикаНоменклатуры
        |            И ЗаказыПокупателейОстаткиИОбороты.Номенклатура = РезервыКомпании.Номенклатура
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РазмещениеЗаказовПокупателей.Остатки(&ДатаАнализа, ЗаказПокупателя = &Заказ) КАК РазмещениеЗаказовПокупателей
        |        ПО ЗаказыПокупателейОстаткиИОбороты.Номенклатура = РазмещениеЗаказовПокупателей.Номенклатура
        |            И ЗаказыПокупателейОстаткиИОбороты.ХарактеристикаНоменклатуры = РазмещениеЗаказовПокупателей.ХарактеристикаНоменклатуры
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаАнализа, ) КАК ОстаткиТоваровКомпании
        |        ПО ЗаказыПокупателейОстаткиИОбороты.Номенклатура = ОстаткиТоваровКомпании.Номенклатура
        |            И ЗаказыПокупателейОстаткиИОбороты.ХарактеристикаНоменклатуры = ОстаткиТоваровКомпании.ХарактеристикаНоменклатуры
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРознице.Остатки(&ДатаАнализа, ) КАК ОстаткиТоваровКомпанииВРознице
        |        ПО ЗаказыПокупателейОстаткиИОбороты.Номенклатура = ОстаткиТоваровКомпанииВРознице.Номенклатура
        |            И ЗаказыПокупателейОстаткиИОбороты.ХарактеристикаНоменклатуры = ОстаткиТоваровКомпанииВРознице.ХарактеристикаНоменклатуры
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&ДатаАнализа, ) КАК РезервыТоваровКомпании
        |        ПО ЗаказыПокупателейОстаткиИОбороты.Номенклатура = РезервыТоваровКомпании.Номенклатура
        |            И ЗаказыПокупателейОстаткиИОбороты.ХарактеристикаНоменклатуры = РезервыТоваровКомпании.ХарактеристикаНоменклатуры
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыКПередачеСоСкладов.Остатки(&ДатаАнализа, ) КАК ТоварыКПередачеКомпании
        |        ПО ЗаказыПокупателейОстаткиИОбороты.Номенклатура = ТоварыКПередачеКомпании.Номенклатура
        |            И ЗаказыПокупателейОстаткиИОбороты.ХарактеристикаНоменклатуры = ТоварыКПередачеКомпании.ХарактеристикаНоменклатуры
        |            И ЗаказыПокупателейОстаткиИОбороты.СтатусПартии = ТоварыКПередачеКомпании.СтатусПартии";

    Запрос.УстановитьПараметр("ДатаАнализа", КонецДня(ТекущаяДата()));
    Запрос.УстановитьПараметр("Заказ", ЗаказСсылка);
    
    Результат = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = Результат.Выбрать();
    
    Статус = Неопределено;
    к = 1;
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        
        Если к <> ВыборкаДетальныеЗаписи.Количество() Тогда
            Продолжить;
        КонецЕсли;
                                    
        Если ВыборкаДетальныеЗаписи.Заказано > 0 И ВыборкаДетальныеЗаписи.ОсталосьОбеспечить = 0 Тогда
            Статус = Перечисления.СтатусЗаказаПокупателя.Запланировано;
        КонецЕсли;
        
        Если ВыборкаДетальныеЗаписи.Заказано >0 И НЕ ВыборкаДетальныеЗаписи.ОсталосьОбеспечить = 0 Тогда
            Статус = Перечисления.СтатусЗаказаПокупателя.ЧастичноЗапланировано;
        КонецЕсли;
        
        
        Если ВыборкаДетальныеЗаписи.Заказано = 0 И ВыборкаДетальныеЗаписи.ОсталосьОбеспечить = 0 Тогда
            Статус = Перечисления.СтатусЗаказаПокупателя.Исполнено;
        КонецЕсли;
        
        Если ВыборкаДетальныеЗаписи.Свободно > ВыборкаДетальныеЗаписи.Запланировано Тогда
            Статус = Перечисления.СтатусЗаказаПокупателя.Исполнено;
        КонецЕсли;
        
        Если ВыборкаДетальныеЗаписи.ОсталосьОтгрузить <= 0 Тогда
            Статус = Перечисления.СтатусЗаказаПокупателя.Отгружено;
        КонецЕсли;
        
        к = к + 1;
    КонецЦикла;
    
    Если Статус <> Неопределено Тогда
        ДокОб = ЗаказСсылка.ПолучитьОбъект();
        Если ДокОб.СтатусЗаказа <> Статус Тогда
            ДокОб.СтатусЗаказа = Статус;
            Попытка
                ДокОб.Записать(РежимЗаписиДокумента.Запись);
            Исключение
            КонецПопытки;    
        КонецЕсли;
    Иначе
        ДокОб = ЗаказСсылка.ПолучитьОбъект();
        Если ДокОб.СтатусЗаказа <> Перечисления.СтатусЗаказаПокупателя.Новый Тогда
            ДокОб.СтатусЗаказа = Перечисления.СтатусЗаказаПокупателя.Новый;
            Попытка
                ДокОб.Записать(РежимЗаписиДокумента.Запись);
            Исключение
            КонецПопытки;    
        КонецЕсли;
    КонецЕсли;    
    
КонецПроцедуры



 ! 

Правила: 9
 
  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #115283 · Ответов: 23 · Просмотров: 15854
 


Новые сообщения  Открытая тема (есть новые ответы)
Опрос  Опрос (есть новые голоса)
Нет новых сообщений  Открытая тема (нет новых ответов)
Нет новых голосов  Опрос (нет новых голосов)
Популярная тема  Горячая тема (есть новые ответы)
Закрыта  Закрытая тема
Нет новых  Горячая тема (нет новых ответов) Перемещена  Тема перемещена
 

RSS Текстовая версия Сейчас: 05.06.24, 0:45
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!