Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
06 июл 2022, 23:37

Обработка.

Автор noob91, 05 мар 2018, 16:48

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

noob91

1.   Бухгалтерия предприятия 3.0. Обработка приход на основе отрицательных остатков по счету бухгалтерского учета «41.01».
      Реквизиты шапки: Период, Процент (для расчета цены поступления).
      Реквизиты табличной части: Счет бухгалтерского учета, Номенклатура, Количество, Цена
      реализации, Сумма реализации (должен быть итог по колонке), Цена поступления, Сумма
      поступления (должен быть итог по колонке).
      Кнопка заполнить: Заполняет колонки табличной части из отрицательных остатков счета
       «41.01» на конец выбранного периода. Колонку «Цена реализации» надо заполнять из
      минимальной цены реализации за выбранный период. Колонка «Цена поступления» равна   
      «Цена реализации» минус «Процент».
      Кнопка сформировать: Создает, записывает и открывает документ «Поступление товаров и
      услуг», для дальнейшего заполнения пользователем полей необходимых для проведения.
      В документе должна быть заполнена Табличная часть данными из Табличной части обработки.
      Документ создается со значением «Без НДС».

Вот задача. Я сам пытался много раз сделать, не могу понять что не так, поэтому, я тут. Вот мой код:

&НаКлиенте

Процедура Инициализировать (Объект, ИмяТабличнойЧасти = Неопределено, ТабличноеПолеОбъекта = Неопределено) Экспорт

    ТабличнаяЧасть1 = Объект[ИмяТабличнойЧасти];

    ФормаВыбораПоступления = ПолучитьФорму("Форма");
    ФормаВыбораПоступления.ОткрытьМодально();

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


Результат = Запрос.Выполнить().Выгрузить();
ВыборкаДетальныеЗаписи = Результат.Выбрать();
Объект.ТабличнаяЧасть1.Очистить();

Пока ВыборкаДетальныеЗаписи.Следующий() цикл   
   НоваяСтрока = Объект.ТабличнаяЧасть1.Добавить();
   НоваяСтрока.БухгалтерскийУчет = Выборка.Счет;
   НоваяСтрока.Нуменклатура = Выборка.Нуменклатура;
   НоваяСтрока.Количество = Выборка.КоличествоостатокДт;
   НоваяСтрока.ЦенаРеализации = Выборка.ЦенаРеализации;
   НоваяСтрока.Суммареализации = Выборка.СуммаРеализации;
   НоваяСтрока.ЦенаПоступления = Выборка.ЦенаРеализации/Объект.Процент;
   НоваяСтрока.СуммаПоступления = Выборка.СуммаРеализации/Объект.Процент;
   
КонецЦикла;

КонецПроцедуры



И код кнопки

&НаКлиенте
Процедура Заполнить(Команда)
   Этаформа.Записать();
    Инициализировать ();
КонецПроцедуры

Помогите нубасу понять, где накосяпорил)

alexandr_ll

А что не так то? Остатки не считаются или документ не создается или еще что?
Вот здесь есть аналогичная обработка для бухгалтерии 2.0
https://cloud.mail.ru/public/5kLU/4aWjEEGMb

noob91

Вот такая ошибка вылезает {ВнешняяОбработка.ПриходНаОсновеОтрицательныхОстатков.Форма.Форма.Форма(4,5)}: Процедура или функция с указанным именем не определена (Инициализировать)
    <<?>>Инициализировать(); (Проверка: Сервер)

Пробовал описывать по-разному, но тщетно. Спасибо,сейчас посмотрю на неё
Добавлено: 05 мар 2018, 18:17


Ошибку исправил, теперь при нажатии на кнопку "Заполнить" ничего не происходит ( feelsbadman
Добавлено: 06 мар 2018, 14:36


По подсказке изменил код немного(запрос)

&НаСервер

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

КонецЦикла;


ТЧ.Итоги("СуммаРеализации");
ТЧ.Итоги("СуммаПоступления");


   
КонецПроцедуры


Однако, не помогло. Как при нажатии на кнопку Заполнить ничего не происходило, так и не происходит

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

Рейтинг@Mail.ru Rambler's Top100

Поиск