Имя: Пароль:
1C
1С v8
Оборотный регистр не работает (
0 начинающий1спрог
 
10.07.12
15:35
такая задача. в рознице 1.0 1с 8.2 дали задачу сделать отчёт закупки, по аналогии отчёта "продажи", так вот есть регистр накопления продажи. я сделал регистр накопления закупки с измерениями Склад Номенклатура ХарактеристикаНоменклатуры ДокументЗакупки(составной тип данных: документы ВозвратТоваровПоставщику и ПоступлениеТоваров) и Контрагент. Ресурсы Количество и стоимость ну и реквизит хозяйственная операция
Регистраторы соответственно ВозвратТоваровПоставщику и ПоступлениеТоваров

в модуле набора записей регистра данная процедура

Перем мПериод          Экспорт; // Период движений
Перем мТаблицаДвижений Экспорт; // Таблица движений

// Выполняет движения по регистру.
//
// Параметры:
//  Нет.
//
Процедура ВыполнитьДвижения() Экспорт

   ОбщегоНазначения.ВыполнитьДвижениеПоРегистру(ЭтотОбъект);

КонецПроцедуры // ВыполнитьДвижения()


в движениях документов галка на регистр закупки стоит, с конструктором движений не связывался, так как в модуле документа процедура обработкапроведения конфигурационная.
Процедура ОбработкаПроведения(Отказ, РежимПроведения)

   СтруктураШапкиДокумента = УправлениеЗапасами.СформироватьСтруктуруШапкиДокумента(ЭтотОбъект);
   // Заголовок для сообщений об ошибках проведения.
   Заголовок = ОбщегоНазначения.ПредставлениеДокументаПриПроведении(СтруктураШапкиДокумента);

   ПроверитьСуществованиеПоступленийПоЗаказу(Отказ, Заголовок);

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

и менять тут, думаю ничего не стоит.
но при проведении какого-либо документа. например поступлениетоваров, в регистре никакой записи не появляется. не могу разобраться с этим, возможно, нетрудным вопросом
1 Ненавижу 1С
 
гуру
10.07.12
15:39
свойство документов "Запись движений при проведении" чему равно?
2 начинающий1спрог
 
10.07.12
15:40
(1) записывать модифицированные
3 Ненавижу 1С
 
гуру
10.07.12
15:41
и где тут собственно видно, что регистр записывается
4 начинающий1спрог
 
10.07.12
15:49
вам не видно вот и мне не видно. во всех документах конфигурации стоит "записывать модифицированные"