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

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

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

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

Chuchi

Очень полезное замечание! я всему стараюсь внимать, запоминать

Chuchi

еще проблема..
уже при запущенной конфигурации все работает до тех пор пока не выбираю более одной строки номенклатуры и не оставляю фокус на количестве второй строки

Номенклатура Конфеты "Барбарис" кол. на складе организации "Конфетпром" - 2 100
Количество  <= Остаток1 (а запрошено 4000!!!)
Номенклатура Шоколад "Аленка" кол. на складе организации "Конфетпром" - 30
Количество  <= Остаток1 (Здесь запрошено всего 1)

и вот фокус остался на второй строке с количеством 1 и он сообщение выдает Количество  <= Остаток1

Chuchi

а если фокус на строке с 4000
то
Номенклатура Конфеты "Барбарис" кол. на складе организации "Конфетпром" - 2 100
Количество  > Остаток1
Номенклатура Шоколад "Аленка" кол. на складе организации "Конфетпром" - 30
Количество  > Остаток1

Chuchi

а как тогда менять позицию в строках? или надо по другому обращаться к сравниваемому количеству

Chuchi

по причине:
{(12, 26)}: Таблица не найдена "Товары"
ЛЕВОЕ СОЕДИНЕНИЕ <<?>>Товары КАК ТЗ

Chuchi

Исправила код

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

Пожалуйста подскажите как мне по соответствующей номенклатуре сравнивать остатки...

Chuchi

(( точно... Простите sergejK74.. я упустила эти две строки из Вашего кода...
Простите и Спасибо!

Chuchi

..возвращаюсь к значению склад, я при формировании реализации в склад ничего не передаю,, на форме у меня нет полей склада, подразумевается если не ведется учета по складам то склад должен быть основным..

Chuchi


Chuchi

Код теперь представляет собой

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

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


а ошибка такая

{Форма.Форма.Форма(70)}: Ошибка при вызове метода контекста (Записать)
         Док.Записать(РежимЗаписиДокумента.Проведение);
по причине:

по причине:
Не удалось провести: "Реализация товаров и услуг"!

Теги:

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

Рейтинг@Mail.ru

Поиск