Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
12 Дек 2017, 09:48
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Проверка заказов при создании нового документа  (Прочитано 1264 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн spapin

  • Стас
  • *
  • Сообщений: 36
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-12-20
  • Сайт: 
  • Профессия: Ученик 1С
Добрый день. Подскажите как лучше организовать проверку по заказам в новом документе корректировка заказа. Т.е. у меня есть документ Поступления, у которого есть доп колонкуа СкКол(проставляется при приходе товара из файла СФ). Если колонки количество и СкКол не равны мне надо сделать документы: Возврат поставщику и Корректировка заказа покупателя.
Но проблема в том, что приход может быть по нескольким заказам и по каждому заказу надо создать свой документ корректировки с позициями, количество у которых не равны. Как лучше сделать?
ТекПользователь = глЗначениеПеременной("глТекущийПользователь");
    ТЗТоварыПеремещения = новый ТаблицаЗначений;
    ТЗТоварыПеремещения.Колонки.Добавить("Номенклатура");
    ТЗТоварыПеремещения.Колонки.Добавить("Количество");
    ТЗТоварыПеремещения.Колонки.Добавить("ЗаказанноеКоличество");
    ТЗТоварыПеремещения.Колонки.Добавить("ДокументРезерва");
    ТЗТоварыПеремещения.Колонки.Добавить("Коэффициент");
    ТЗТоварыПеремещения.Колонки.Добавить("ЕдиницаИзмерения");
    ТЗТоварыПеремещения.Колонки.Добавить("ЕдиницаИзмеренияМест");
    ТЗТоварыПеремещения.Колонки.Добавить("Качество");
    ТЗТоварыПеремещения.Колонки.Добавить("ВалютаДокумента");
    ТЗТоварыПеремещения.Колонки.Добавить("СтавкаНДС");
    ТЗТоварыПеремещения.Колонки.Добавить("Цена");
    ТЗТоварыПеремещения.Колонки.Добавить("СкладОрдер");
    ТЗТоварыПеремещения.Колонки.Добавить("Заказ");
    ТЗТоварыПеремещения.Колонки.Добавить("ЗаказПоставщику");
    ТЗТоварыПеремещения.Колонки.Добавить("ФлагНовогоЗаказа");
   
    РазличноеКоличество = товары.Итог("Количество") - товары.Итог("СкКол");
    Если РазличноеКоличество > 0 Тогда
        ТекДокументПоступления = ЭтотОбъект.Ссылка;
       
        Для Каждого строка Из ТекДокументПоступления.Товары Цикл
            Если строка.СкКол < строка.Количество Тогда
                ОстатокОтПоступления = строка.Количество - Строка.СкКол;
                СтрокаТЗ = ТЗТоварыПеремещения.Добавить();
                СтрокаТЗ.Номенклатура                  = строка.Номенклатура;
                СтрокаТЗ.Количество                  = ОстатокОтПоступления;
                СтрокаТЗ.ЗаказанноеКоличество         = строка.Количество;
                СтрокаТЗ.Коэффициент                 = 1;
                СтрокаТЗ.ЕдиницаИзмерения            = строка.Номенклатура.ЕдиницаХраненияОстатков;
                СтрокаТЗ.ЕдиницаИзмеренияМест        = строка.Номенклатура.ЕдиницаИзмеренияМест;
                СтрокаТЗ.Качество                      = Справочники.Качество.Новый;
                СтрокаТЗ.СтавкаНДС                   = строка.СтавкаНДС;
                СтрокаТЗ.Цена                         = строка.Цена;
                СтрокаТЗ.СкладОрдер                  = СкладОрдер;
                СтрокаТЗ.Заказ                        = строка.Заказ;
                СтрокаТз.ЗаказПоставщику            = строка.ЗаказПоставщику;
            КонецЕсли;
        КонецЦикла;
        //Создадим документ возврата поставщику

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

        Если ТЗТоварыПеремещения.Количество() > 0 Тогда
            ТЗЗаказов = ТЗТоварыПеремещения.Скопировать();
           
            Для каждого стТЗЗаказов из ТЗЗаказов цикл
                ДокКорректировки = Документы.КорректировкаЗаказаПокупателя.СоздатьДокумент();
               
                ДокКорректировки.Дата = ТекущаяДата();           
                ДокКорректировки.ЗаказПокупателя = стТЗЗаказов.Заказ;
               
                Для каждого стрТЗТоварыПеремещения из ТЗТоварыПеремещения цикл
                    Если стрТЗТоварыПеремещения.Заказ =  стТЗЗаказов.Заказ тогда
                        стрДокументКорректировки = ДокКорректировки.Товары.Добавить();
                        стрДокументКорректировки.Номенклатура        = стрТЗТоварыПеремещения.Номенклатура;
                        стрДокументКорректировки.Количество         = -1*стрТЗТоварыПеремещения.Количество;
                        стрДокументКорректировки.Коэффициент         = 1;
                        стрДокументКорректировки.ЕдиницаИзмерения     = стрТЗТоварыПеремещения.ЕдиницаИзмерения;
                        стрДокументКорректировки.Цена               = стрТЗТоварыПеремещения.Цена;
                        СуммаВКорректировку                           = стрТЗТоварыПеремещения.Цена * стрТЗТоварыПеремещения.Количество;
                        стрДокументКорректировки.Сумма              = -СуммаВКорректировку;
                        СуммаНДСВКорректировку                        = (СуммаВКорректировку/118*18)* стрТЗТоварыПеремещения.Количество;
                        стрДокументКорректировки.СуммаНДС           = -СуммаНДСВКорректировку;
                        стрДокументКорректировки.Размещение         = стрТЗТоварыПеремещения.СкладОрдер;

                        КонецЕсли;   
                КонецЦикла;
            КонецЦикла;
            ДокКорректировки.Записать(РежимЗаписиДокумента.Запись);
            Сообщить("Создан документ " + ДокКорректировки);
        КонецЕсли;     
    КонецЕсли;


Теги:
 

Автоматическое заполнение табличной части документа из табличной части другого

Автор WillРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 6
Просмотров: 15903
Последний ответ 16 Авг 2012, 12:07
от Will
Заполнение поля табличной части документа из табличной части справочника.

Автор Kurt_WagnerРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 4195
Последний ответ 06 Апр 2015, 20:08
от Kurt_Wagner
Заполнение табличной части документа реквизитами табличной части справочника

Автор kaf_infoРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 618
Последний ответ 10 Май 2017, 20:44
от ilnur75
Добавление сведений в графу "основание" документа "ТОРГ-12"

Автор Ярослав1984Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 4
Просмотров: 7734
Последний ответ 20 Авг 2013, 18:45
от Ярослав1984
"Не совпадают сумма документа и общая сумма по платежным ведомостям"

Автор yunovoРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 4769
Последний ответ 11 Янв 2015, 02:55
от MuI_I_Ika

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
168 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
55 Сообщений
alex0402
46 Сообщений
andron81_81
42 Сообщений
AIFrame
37 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
BuhRust
29 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 753
  • Точка Скрытых: 0
  • Точка Пользователей: 10
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal