Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
26 ноя 2024, 18:47

Остатки на 41 счете

Автор Chuchi, 23 апр 2011, 14:36

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

Chuchi


Chuchi

не создается и не выводиться,
создается документ и выводиться в печатном виде, если код прописать так
Док.Записать();
            Док.Печать("ТОРГ12");
НО ведь здесь он не проводиться

Chuchi

если просто записывать то печатную форму формирует а вот в ручную не проводит
пишет просто не удалось провести реализацию и никаких подробно

Chuchi

..((...заработало только после того как я вручную перепровела ПОСТУПЛЕНИЯ ЭТИХ ТОВАРОВ....

Chuchi

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

Иначе   
Сообщить("Количество  <= Остаток1");
КонецЕсли;
КонецЦикла;
    док= документы.РеализацияТоваровУслуг.СоздатьДокумент();
Док.Организация=ЭлементыФормы.Организация1.Значение;
Док.Контрагент=элементыФормы.Контрагент3.Значение;
мВалютаРегламентированногоУчета = Неопределено;
РаботаСДиалогами.ПриИзмененииЗначенияДатыДокумента(Док, мВалютаРегламентированногоУчета);
Док.Дата=ТекущаяДата();
мСписокВидовДоговоров=Неопределено;
ЗаполнениеДокументов.ПриИзмененииЗначенияКонтрагента(Док,мСписокВидовДоговоров);
Док.ТипЦен=ЭлементыФормы.Цена2.Значение;
Док.Склад= Справочники.Склады.НайтиПоКоду("000000001") ;
Док.ВалютаДокумента=Справочники.Валюты.НайтиПоКоду("643");
Док.СпособЗачетаАвансов = Перечисления.СпособыЗачетаАвансов.Автоматически;
Док.ЗаполнитьСчетаУчетаРасчетов();
Док.Товары.Загрузить(Номенклатура.Выгрузить());
Для каждого СтрокаТЧ из Док.Товары цикл
СчетаУчета     = БухгалтерскийУчет.ПолучитьСчетаУчетаНоменклатуры(Док.Организация, СтрокаТЧ.Номенклатура, Док.Склад);
//СчетаРозницы   = (Склад.ВидСклада = Перечисления.ВидыСкладов.Розничный);
ЭтоКомиссия    = (Док.ДоговорКонтрагента.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СКомиссионером);
МетаданныеДока = Док.Метаданные();
Док.ЗаполнитьСчета(СтрокаТЧ, "Товары", СчетаУчета, Истина, ЭтоКомиссия, МетаданныеДока);
// Заполняем реквизиты табличной части.
ОбработкаТабличныхЧастей.ЗаполнитьСтавкуНДСТабЧасти(СтрокаТЧ, Док);
// Заполнение цены 
ОбработкаТабличныхЧастей.ЗаполнитьЕдиницуЦенуПродажиТабЧасти(СтрокаТЧ, Док, мВалютаРегламентированногоУчета);
ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(СтрокаТЧ, Док);
ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(СтрокаТЧ, Док);
КонецЦикла;
    Док.Записать(РежимЗаписиДокумента.Проведение);
            Док.Печать("ТОРГ12");
            ДокСч=Документы.СчетФактураВыданный.СоздатьДокумент();
ДокСч.Организация=Организация1;
ДокСч.Дата=ТекущаяДата();
ДокСч.Контрагент=Контрагент3;
мСписокВидовДоговоров=Неопределено;
ЗаполнениеДокументов.ПриИзмененииЗначенияКонтрагента(ДокСч,мСписокВидовДоговоров);
строка12 = ДокСч.ДокументыОснования.Добавить();
строка12.ДокументОснование = док.Ссылка;
ДокСч.ВалютаДокумента=Справочники.Валюты.НайтиПоКоду("643");
ДокСч.Записать(РежимЗаписиДокумента.Проведение);
ДокСч.Печать("СчетФактура");




теперь пытаюсь  после проверки Отстатка1 на складе организации1 и если там меньше требуемого проверить наличие товара (которого не хватает на первой организации) проверить на второй..
код аналогичный вставила вот только понимаю что мне надо конкретную номенклатуру передать, ту на которой основной цикл получил Количество<остаток

как передать номенклатуру?

Chuchi

ой точнее количество>остатка

Chuchi

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

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

Иначе   
Сообщить("Часть с первого часть со второго");
КонецЕсли;
Иначе
Сообщить("Количество =< Остаток1");

КонецЕсли;

КонецЦикла;


Не хочет сравнивать
    Если Остаток2  < Разница Тогда;
Пишет что несоответствие типов

Chuchi

Запрос2=Новый Запрос;
Запрос2.МенеджерВременныхТаблиц=Новый МенеджерВременныхТаблиц;

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



Почему не выводит количество остатка2

Chuchi


Chuchi

ВЫводит, перепровела поступления на складе второй организации!
Спасибо!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск