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

Вопрос по регистрам накопления

Автор Вожак, 15 мар 2012, 15:28

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

Вожак

Добрый день, недавно начал осваивать 8.2 программирование, столкнулся с проблемой.
У меня есть документ поступление товаров, есть регистр накопление, куда записываются данные после поступление товаров на склад, делал аналогично УТ 10, но не работает, товар можно записать, но в регистр он не попадет, как быть?

cska-fanat-kz

Лезте в модуль объекта Приходной и проверяйте процедуру ОбработкаПроведения() (естественно при наличии таковой ))) )
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Вожак

Цитата: cska-fanat-kz от 15 мар 2012, 15:37
Лезте в модуль объекта Приходной и проверяйте процедуру ОбработкаПроведения() (естественно при наличии таковой ))) )

Видел такую, я смотрел отладчиком по типконфе как куда и что, и аналогично делал свою, но при вводе, товар записывается, но не в регистр накопления(

cska-fanat-kz

Чудес не бывает.

Запостите текст процедуры.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Вожак

Процедура ОбработкаПроведения(Отказ, РежимПроведения)
   Перем Заголовок, СтруктураШапкиДокумента;
   Перем ТаблицаПоТоварам;
ПодготовитьСтруктуруШапкиДокумента(Заголовок, СтруктураШапкиДокумента);
   СтруктТаблицДокумента = Новый Структура;
   СтруктТаблицДокумента.Вставить("ТаблицаПоТоварам",      ТаблицаПоТоварам);
    ТаблицыДанныхДокумента = ОбщегоНазначения.ЗагрузитьТаблицыДокументаВСтруктуру( Движения.ТоварыПолученные, СтруктТаблицДокумента);
   
КонецПроцедуры

Вожак

  Функция ЗагрузитьТаблицыДокументаВСтруктуру(Движение, СтруктТаблицДокумента) Экспорт
   
   ПустаяТабРегистра = Движение.Выгрузить();
   ПустаяТабРегистра.Очистить();
   
   СтруктДанных = Новый Структура;
   Для Каждого ТабЧасть Из СтруктТаблицДокумента Цикл
   
      ТабРегистра = ПустаяТабРегистра.Скопировать();
      
      //Если ТабЧасть.Значение <> Неопределено И ТабЧасть.Значение.Количество() > 0 Тогда
      //   ЗагрузитьВТаблицуЗначений( ТабЧасть.Значение, ТабРегистра);
      //КонецЕсли;
      
      СтруктДанных.Вставить( ТабЧасть.Ключ, ТабРегистра);
      
   КонецЦикла;
   
   Возврат СтруктДанных;

КонецФункции

cska-fanat-kz

Не код а какая то простите хрень...
Если сдирать с типовой, то хоть осмысленно (

Да и ваш случай слишком прост чтобы воротить типовые "фишки"...

Достаточно просто:


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

   Запрос.УстановитьПараметр("Ссылка", Ссылка);

   Движения.ОстаткиНоменклатуры.Загрузить(Запрос.Выполнить().Выгрузить());

КонецПроцедуры
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Вожак

Спасибо за код, но нужно не так не много, нужно чтобы записи сохранялись в виртуальной таблице, когторая создается в регистре накоплений сама, вот как это сделать?

cska-fanat-kz

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

Вам важно правильно в регистр сделать движения, а итоги сами посчитаются, без вас.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Вожак

Пишет не найдено поле объекта ОстаткиНоменклатуры, я создал его в реквизитах, и на форме создавал, все равно пишет не найдено

Теги:

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

Рейтинг@Mail.ru

Поиск