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

Автор Тема: Одна реализация  (Прочитано 1876 раз)

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

Оффлайн Chuchi

  • ***
  • Сообщений: 133
  • РЕПУТАЦИЯ: 4
  • КПД: 3%
  • Регистрация: 2011-03-24
  • Сайт: 
  • Профессия: Ученик 1С
Необходимо создать реализацию с основного склада второй организации на основной склад первой организации товара в количестве разницы (недостоющей на складе первой организации для реализации покупателю)
после проверки наличия на первой организации и выявления недостоющего количества прописала вот такой код
Если Хватает Тогда
    Запрос=Новый Запрос;
    Запрос.МенеджерВременныхТаблиц=Новый МенеджерВременныхТаблиц;
    Запрос.Текст=
    "ВЫБРАТЬ
     |    ТабличнаяЧасть.Номенклатура,
     |    ТабличнаяЧасть.Количество
     |ПОМЕСТИТЬ ВТ
     |ИЗ
     |    &ТЧ КАК ТабличнаяЧасть";
    Запрос.УстановитьПараметр("ТЧ", Товары);
    Запрос.Выполнить();
    Запрос.Текст=
    "ВЫБРАТЬ
    |    ТабличнаяЧасть.Номенклатура,
    |    ТабличнаяЧасть.Количество,
    |    ЕСТЬNULL(ХозрасчетныйОстатки.КоличествоОстаток, 0) КАК ОстатокНаСкладе,
    |    ХозрасчетныйОстатки.КоличествоОстаток - ТабличнаяЧасть.Количество КАК Разница
    |ИЗ
    |    ВТ КАК ТабличнаяЧасть
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, Счет В ИЕРАРХИИ (&Счёт), , ) КАК ХозрасчетныйОстатки
    |        ПО ТабличнаяЧасть.Номенклатура = ХозрасчетныйОстатки.Субконто1
    |ГДЕ
    |    ХозрасчетныйОстатки.Организация = &Организация";
    Запрос.УстановитьПараметр("Период", Дата);
    Запрос.УстановитьПараметр("Счёт", ПланыСчетов.Хозрасчетный.ТоварыНаСкладах);
    Запрос.УстановитьПараметр("Организация", Организация1);
   
    Выборка=Запрос.Выполнить().Выбрать();
    Хватает=Истина;
    Пока Выборка.Следующий() Цикл

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


       
На примере
Список номенклатуры для реализации покупателю
1. "Аленка" - 10 шт. (из них 9 есть на складе 1орг а 1 на складе 2 орг)
2. "Мишка на севере" - 15шт (из них на первой орг 10 на втрой - 5шт)

цикл проверяет построчно (и увы также формирует и документ реализации со второй на первую организацию)
т.е. в результате он мне выдает
1 реализация
Аленка - 1 шт
Мишка на севере - 1 шт

2 реализация
Аленка - 5 шт
Мишка - 5 шт


т.е. как я понимаю он просто весь список номенклатуры размещает в реализации с количеством не достающим по конкретной строке.
Как мне сделать ОДНУ ОБЩУЮ РЕАЛИЗАЦИЮ с количеством соответствующим каждой номенклатуре..


Оффлайн Chuchi

  • ***
  • Сообщений: 133
  • РЕПУТАЦИЯ: 4
  • КПД: 3%
  • Регистрация: 2011-03-24
  • Сайт: 
  • Профессия: Ученик 1С
Re: Одна реализация
« Ответ #1: 05 Июл 2011, 16:17 »
Я получается в цикле делаю реализацию, это уже не верно. Т.е. после того как у меня первая проверка выдает что вообще можно будет наскрести товара по двум организация уже можно формировать сам документ реализации,  а потом наполнять этот документ номенклатурой, но вот вопрос как это сделать, я так размыляю что надо бы еще какую нибудь вспомогательную таблицу чтобы в нее построчно занести чего и сколько не хватает потом это списать со второй орг, затем принять на первой и потом уже формировать реализацию к покупателю..

Оффлайн Chuchi

  • ***
  • Сообщений: 133
  • РЕПУТАЦИЯ: 4
  • КПД: 3%
  • Регистрация: 2011-03-24
  • Сайт: 
  • Профессия: Ученик 1С
Re: Одна реализация
« Ответ #2: 07 Июл 2011, 20:16 »
Никто мне не ответит(
хоть теорией подскажите пожалуйста
как мне проверяя построчно заносить номенклатуру с требуемым количеством(разницей) во временную таблицу а потом ее загрузить в табличную часть реализации между второй и первой организации((

Оффлайн Шурыгин Иван Сергеевич

  • забей на все....
  • ****
  • Сообщений: 330
  • РЕПУТАЦИЯ: 82
  • КПД: 25%
  • забей на все!
  • Регистрация: 2011-05-23
  • Сайт: 
  • Профессия: Программист 8.1
Re: Одна реализация
« Ответ #3: 08 Июл 2011, 06:12 »
ну во первых насколько я помню реализация всегда по 1 организации идет. значит соотвественно надо либо создавать 2 реализации, либо менять конкретно реализацию.
но и в этом случае я бы не пологался на обработку которая это делает автоматически. есть такая загвоздка, а если пользователь решит списать по другому. я бы предложил создать обработку, которая имеет таблицу.
Номенклатура, ТребуетсяСписать, ОстатокСклад1, ОстатокСклад2, СписатьСклад1, СписатьСклад2.
причем 2 последних колонки предложить проверить пользователю и добавить возможность изменить значения. а далее на выходе этой обработки создавать 2 документа реализации.
===================================
жизнь надо прожить так, чтоб вверху посмотрели.
и сказали "А ну ка повтори"
===================================


Теги:
 


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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
138 Сообщений
AIFrame AIFrame
130 Сообщений
alexandr_ll
65 Сообщений
pavl_vs
48 Сообщений
alex0402
44 Сообщений
buketov.av buketov.av
37 Сообщений
ilyay ilyay
36 Сообщений
trialex3
22 Сообщений
magnifico61
21 Сообщений
wise wise
18 Сообщений

* Кто онлайн

  • Точка Гостей: 157
  • Точка Скрытых: 0
  • Точка Пользователей: 0

Нет пользователей онлайн.

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal