Имя: Пароль:
1C
1С v8
Не заполняется регистр
,
0 Худой
 
22.10.12
19:28
Вроде банальная процедура.
// Движения по Регистру "Заявки"
Сообщить("Движения по Регистру Заявки");
Если СкладОтправитель = Справочники.Склады.НайтиПоНаименованию("Центральный склад").Ссылка И УчетЗаявок Тогда
   Для Каждого ТекСтрокаТовары Из Товары Цикл
   Сообщить(ТекСтрокаТовары.НомерСтроки);
   Сообщить(ТекСтрокаТовары.Номенклатура);
       Движение = Движения.Заявки.Добавить();
       Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
       Движение.Период = Дата;
       Движение.Номенклатура = ТекСтрокаТовары.Номенклатура;
       Движение.Склад = СкладПолучатель;
       Движение.Количество = ТекСтрокаТовары.Количество;
       Движение.Проект = Справочники.Проекты.ПустаяСсылка();
       Движение.Активность = Истина;
   КонецЦикла;
   Движения.Заявки.Записать();
КонецЕсли;

Уже все вокруг истоптал. Не могу понять, почему, при проведении документа, не появляются записи в регистре "Заявки". Контрольные сообщения входа в цикл нормально появляются.
По регистру "Бухгалтерский и налоговый учет", параллельно с которым заполняю регистр "Заявки", все нормально показывается.
Платформа 1С:Предприятие 8.2 (8.2.16.362)
Бухгалтерия предприятия, редакция 3.0 (3.0.14.10)
1 xsnika
 
22.10.12
19:31
У меня встречался подобный случай, но там виновными оказались подписки на события :)
2 Худой
 
22.10.12
19:37
Не понимаю, каким боком у меня, например, могут оказаться подписки на события.
3 Нуф-Нуф
 
22.10.12
19:47
процедура где и когда вызывается?
4 Худой
 
22.10.12
19:51
В конфу добавил свой регистр "Заявки" и добавил этот код в стандартную процедуру проведения документа "Перемещение товаров". Ничего лишнего
5 Худой
 
22.10.12
19:55
(3)Мда...Действительно. Не в ту процедуру запихал.
Всего маленький вопрос и ошибку нашел.
Спасибо.
6 Худой
 
25.10.12
09:25
Сейчас пересмотрел задачу чуток.
Идея такая - постараться не лазить в стандартный код и стандартные механизмы проведения. То есть, вернуть этот самый объект(документ) в первоначальное состояние, как в поставке.
В связи с этим, вопросы.
Можно-ли, не трогая процедуру проведения, двигать свои регистры, которые я для своих целей создал?
Какие существуют механизмы по запуску своих процедур на(например) события проведение документа?
Пока ни разу не пользовался этими механизмами.
Буду очень признателен за советы.
7 palladyi
 
25.10.12
09:28
Совсем не трогая ты врядли что сделаешь. Но в процедуру при проведении ты можешь сапихнуть ссылки на свои модули, там делай все, что хочешь
8 Starhan
 
25.10.12
09:28
1. Можно
2. Подписки на события
3. посмотри стандартные подписки на события.
9 Alexander Shevchuck
 
25.10.12
09:32
Попробуй так
10 Alexander Shevchuck
 
25.10.12
09:33
// Движения по Регистру "Заявки"

Сообщить("Движения по Регистру Заявки");
Если СкладОтправитель = Справочники.Склады.НайтиПоНаименованию("Центральный склад").Ссылка И УчетЗаявок Тогда
   Для Каждого ТекСтрокаТовары Из Товары Цикл
   Сообщить(ТекСтрокаТовары.НомерСтроки);
   Сообщить(ТекСтрокаТовары.Номенклатура);
       Движение = Движения.Заявки.Добавить();
       Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
       Движение.Период = Дата;
       Движение.Номенклатура = ТекСтрокаТовары.Номенклатура;
       Движение.Склад = СкладПолучатель;
       Движение.Количество = ТекСтрокаТовары.Количество;
       Движение.Проект = Справочники.Проекты.ПустаяСсылка();
       Движение.Активность = Истина;
   КонецЦикла;
   Движения.Заявки.Записать(ЛОЖЬ);
КонецЕсли;
11 Худой
 
25.10.12
09:36
(8),(9)Два разных мнения по поводу возможности "не внесения" изменений в код.
(10)Не совсем понял куда этот код писать?
Я бы, вообще, хотел бы отказаться от изменения документа, а создать "в сторонке" процесс слежения за событием проведения документа.
12 Starhan
 
25.10.12
09:38
Конфигурация Общие подписки на события - это ты в конфе меняешь. Документ сам не трогаешь.

http://yandex.ru/yandsearch?text=подписки+на+события+1с&lr=56
13 Alexander Shevchuck
 
25.10.12
09:58
(9) относится к (10) я поддерживаю мнение о подписках сам ими пользуюсь, в (9)+(10) я хотел сказать другое, обрати внимание на этот пример:

Набор = РегистрыНакопления.ПоступлениеСырья.СоздатьНаборЗаписей();
               Набор.Отбор.Регистратор.Значение = Выборка.Ссылка;
               Движение                         = Набор.ДобавитьПриход();
               Набор.Отбор.Регистратор.Установить(Выборка.Ссылка);
               Движение.Период                     = Источник.Дата;
               Движение.Организация             = Источник.Организация;
               Движение.Контрагент                 = Источник.Контрагент;
               Движение.Склад                     = МестоОприходования;
               Движение.Номенклатура             = Выборка.Номенклатура;
               Движение.Количество                 = Выборка.Количество;
               Движение.БазовоеКоличество         = Выборка.БазовоеКоличество;
               
               
Набор.Записать(ЛОЖЬ);

Особенно обрати внимание на Набор.Записать(ЛОЖЬ), если будет Набор.Записать(ИСТИНА) то ты очистишь запись, а не запишешь
14 sidalexsandr
 
25.10.12
10:09
(0) Процедуры ПередПроведением(), ПередЗаписью()

В них например может быть написанно удаление проведения.
15 sidalexsandr
 
25.10.12
10:12
Закладка движения: Проведение установленно разрешить? Галочка у регистра твоего стоит?
16 Alexander Shevchuck
 
25.10.12
10:13
О подписках в двух словах: сначала создай общий модуль (Конфигурация -> Общие -> Общие Модули) затем подписку на событие (Конфигурация -> Общие -> Подписки На События), в подписки выбери Источник (справочник, документ и т.д.), Событие (ПриЗаписи, ПриПроведении любое доступное для этого источника) и обработчик для события (поле "обработчик" нажми на лупу вылетит список общих модулей, со списка выбери нужный и программа генерирует тебе процедуру в нем). Дальше пишешь свой обработчик.
17 sidalexsandr
 
25.10.12
10:17
(0)Попробуй создай движения Конструктором движений.
18 Худой
 
25.10.12
10:58
Спасибо большое всем. Вопросов очень много. Буду думать. Если что буду тут отписываться.
Дело в том, что конфа "дописана" тут прогером по заявкам пользователей. Внесены дополнительные объекты, которые очень даже косвенно касаются бухучета, но созданы субконто, чтобы, хоть как то, отражать движение. При переводе на 8.3, Хочу их убрать оттуда, чтобы штатно обновление шло.
19 AndyTLT63
 
25.10.12
11:29
А почему нету
Движения.Заявки.Записывать=Истина; ?
20 Худой
 
25.10.12
14:57
(19)Я не совсем понял. Вопрос про что?
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший