Имя: Пароль:
1C
1С v8
Не записывается запись в регистре накопления
0 Miss1C
 
05.09.12
17:20
Создала подписку на событие "ПриЗаписи" для документов РеализацияТоваровИУслуг и ВозвратТоваровОтПокупателя, но запись в регистре не перезаписывается, что не так сделала?

Процедура ОбработкаПроведенияДокументовРеализацииОбработкаПроведения(Источник, Отказ, РежимПроведения) Экспорт
   
   ТЗ = Новый ТаблицаЗначений;
       
   Ссылка = Источник.Ссылка;
   НаборЗаписей = РегистрыНакопления.ПродажиСебестоимость.СоздатьНаборЗаписей();
   НаборЗаписей.Отбор.Регистратор.Установить(Ссылка,Истина);
   НаборЗаписей.Прочитать();
   НЗП = РегистрыНакопления.Продажи.СоздатьНаборЗаписей();
   НЗП.Отбор.Регистратор.Установить(Ссылка,Истина);
   НЗП.Прочитать();
   Количество = НаборЗаписей.Количество();
   ТЗ = НаборЗаписей.Выгрузить();    
   ТЗ.Свернуть("Номенклатура, ХарактеристикаНоменклатуры, ЗаказПокупателя, Подразделение, Проект", "Стоимость, Количество");
   
   Для Каждого Стр Из НЗП Цикл
       
       Отбор = Новый Структура();
       Отбор.Вставить("Номенклатура",Стр.Номенклатура);
       Отбор.Вставить("ХарактеристикаНоменклатуры",Стр.ХарактеристикаНоменклатуры);
       Отбор.Вставить("ЗаказПокупателя",Стр.ЗаказПокупателя);
       Отбор.Вставить("Подразделение",Стр.Подразделение);
       Отбор.Вставить("Проект",Стр.Проект);
       Строки = ТЗ.НайтиСтроки(Отбор);
       Стоимость = 0;
       Количество = 0;
       Для Каждого Строка Из Строки Цикл
           Стоимость = Стоимость+Строка.Стоимость;
           Количество = Количество + Строка.Количество;
       КонецЦикла;
       Если Стр.Количество = Количество Тогда
           Стр.Себестоимость = Стоимость;
       КонецЕсли;
       
   КонецЦикла;
   
   НЗП.Записать();
   
   Для Каждого Строка Из НЗП Цикл
       
       НоваяЗапись = Источник.Движения.Продажи.Добавить();
       ЗаполнитьЗначенияСвойств(НоваяЗапись,Строка,,"ВидДвижения");
       
   КонецЦикла;    
   
   Источник.Движения.Продажи.Записать();
   
КонецПроцедуры
1 rbcvg
 
05.09.12
17:21
с таким ником фото обязательно.
2 Miss1C
 
05.09.12
17:22
(1)Завтра загружу, регистрировалась на работе, фотографии нету
3 zladenuw
 
05.09.12
17:23
ну вот завтра и помогут :)
4 zladenuw
 
05.09.12
17:25
(0) только смысл передавать в источник.движение. если ты можешь набор перезаписать сразу
5 Miss1C
 
05.09.12
17:25
(3) Честное слово выложу, вы прям как маленькие дети, помогите человеку
6 Miss1C
 
05.09.12
17:26
(4)Перезаписывала сразу, тот же результат
7 John83
 
05.09.12
17:26
(5) все вы так говорите, а в итоге только слова :)
8 ssh2006
 
05.09.12
17:28
[событие "ПриЗаписи"] - потом обработка проведения переписывает движения
9 DrShad
 
05.09.12
17:28
(6) а телефон у тебя случаем не от Фиксина? иначе не поверю что на нем нет камеры, да и чтоб у бабы не было фоток на компе, особенно на рабочем, НЕ ВЕРЮ
10 Miss1C
 
05.09.12
17:30
(8)Предлагаете поменять событие ПослеЗаписи?
11 Dimonster
 
05.09.12
18:00
(0) Вместо ПриЗаписи -> ОбработкаПроведения
12 Dimonster
 
05.09.12
18:02
(0) + Источник.Движения - здесь есть все наборы записей документа...
13 ВалераОшкин
 
05.09.12
18:03
А у меня вот тут ошибка... не работаит

РезультатВычисления = Ложь;
   
   МассивДоговоровКонтрагентов = Новый Массив;
   МассивДоговоровПоНедвижимости = Новый Массив;
   
   Если ТИПЗНЧ(СписокДоговоровПоНедвижимости) = Тип("СписокЗначений")
       ИЛИ ТИПЗНЧ(СписокДоговоровПоНедвижимости) = Тип("Массив") Тогда
       
       Для ш = 0 По СписокДоговоровПоНедвижимости.Количество() - 1 Цикл
           ДоговорИсточник = СписокДоговоровПоНедвижимости[ш];
           
           Если ТИПЗНЧ(ДоговорИсточник) = ТИП("ДокументСсылка.УПН_ДоговорПоНедвижимости") Тогда
               МассивДоговоровПоНедвижимости.Добавить(ДоговорИсточник);
           ИначеЕсли ТИПЗНЧ(ДоговорИсточник) = ТИП("СправочникСсылка.ДоговорыКонтрагентов") Тогда
               МассивДоговоровКонтрагентов.Добавить(ДоговорИсточник);
           КонецЕсли;
           
       КонецЦикла;
       
   Иначе
       
       Если ТИПЗНЧ(СписокДоговоровПоНедвижимости) = ТИП("ДокументСсылка.УПН_ДоговорПоНедвижимости") Тогда
           МассивДоговоровПоНедвижимости.Добавить(СписокДоговоровПоНедвижимости);
           МассивДоговоровКонтрагентов.Добавить(СписокДоговоровПоНедвижимости.ДоговорКонтрагента);
       ИначеЕсли ТИПЗНЧ(СписокДоговоровПоНедвижимости) = ТИП("СправочникСсылка.ДоговорыКонтрагентов") Тогда
           МассивДоговоровПоНедвижимости.Добавить(СписокДоговоровПоНедвижимости.ДоговорПоНедвижимости);
           МассивДоговоровКонтрагентов.Добавить(СписокДоговоровПоНедвижимости);
       КонецЕсли;    
       
   КонецЕсли;
           
   Запрос = Новый Запрос;
   Запрос.УстановитьПараметр("ИсточникВызоваСсылка",ИсточникВызоваСсылка);
   Запрос.УстановитьПараметр("СписокДоговоров",СписокДоговоровПоНедвижимости);
   Запрос.УстановитьПараметр("МассивДоговоровПоНедвижимости",МассивДоговоровПоНедвижимости);
   Запрос.УстановитьПараметр("МассивДоговоровКонтрагентов",МассивДоговоровКонтрагентов);
   
   Запрос.Текст =
   "ВЫБРАТЬ
   |    УПН_РасторжениеСделкиПоНедвижимости.ДоговорПоНедвижимости КАК ДоговорПоНедвижимости,
   |    УПН_РасторжениеСделкиПоНедвижимости.Ссылка КАК РасторжениеСделки,
   |    УПН_РасторжениеСделкиПоНедвижимости.ДоговорПоНедвижимости.ДоговорКонтрагента КАК ДоговорКонтрагента
   |ИЗ
   |    Документ.УПН_РасторжениеСделкиПоНедвижимости КАК УПН_РасторжениеСделкиПоНедвижимости
   |ГДЕ
   |    УПН_РасторжениеСделкиПоНедвижимости.Проведен
   |    И НЕ УПН_РасторжениеСделкиПоНедвижимости.ПометкаУдаления
   |    И УПН_РасторжениеСделкиПоНедвижимости.ДоговорПоНедвижимости В(&МассивДоговоровПоНедвижимости)
   |    И УПН_РасторжениеСделкиПоНедвижимости.ДоговорПоНедвижимости.ДоговорКонтрагента В(&МассивДоговоровКонтрагентов)
   |    И УПН_РасторжениеСделкиПоНедвижимости.Ссылка <> &ИсточникВызоваСсылка
   |    И УПН_РасторжениеСделкиПоНедвижимости.СтатусДокумента = ЗНАЧЕНИЕ(Перечисление.УПН_СтатусыДокументовПоСделке.Подписано)";
                 
   РезультатЗапроса = Запрос.Выполнить();
   
   Если НЕ РезультатЗапроса.Пустой() Тогда
       РезультатВычисления = Истина;
       Если СообщатьОбОтказе Тогда
           ЗапросВыборка = РезультатЗапроса.Выбрать();
           Пока ЗапросВыборка.Следующий() Цикл
               ТекстСообщенияПользователю =СокрЛП(ИсточникВызоваСсылка)+ ": найдено расторжение договора <"+СокрЛП(ЗапросВыборка.ДоговорКонтрагента)+"("+СокрЛП(ЗапросВыборка.ДоговорПоНедвижимости)+")>, операция запрещена.";
               ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщенияПользователю,ИсточникВызоваСсылка,,,РезультатВычисления);
           КонецЦикла;
       КонецЕсли;
   КонецЕсли;
   
   Возврат РезультатВычисления;
14 Miss1C
 
05.09.12
18:06
Поменяла событие на ОбработкаПроведения и код сделала читабельным.

Процедура ОбработкаПроведенияДокументовРеализацииОбработкаПроведения(Источник, Отказ, РежимПроведения) Экспорт
   
   мДок = Источник.Метаданные();
   Если Не мДок.Движения.Содержит(Метаданные.РегистрыНакопления.Продажи) Тогда
       Возврат;
   КонецЕсли;
   Если Не мДок.Движения.Содержит(Метаданные.РегистрыНакопления.ПродажиСебестоимость) Тогда
       Возврат;
   КонецЕсли;
   
   ТЗ = Новый ТаблицаЗначений;
   
   Ссылка = Источник.Ссылка;
   НаборЗаписей = РегистрыНакопления.ПродажиСебестоимость.СоздатьНаборЗаписей();
   НаборЗаписей.Отбор.Регистратор.Установить(Ссылка,Истина);
   НаборЗаписей.Прочитать();
   НЗП = РегистрыНакопления.Продажи.СоздатьНаборЗаписей();
   НЗП.Отбор.Регистратор.Установить(Ссылка,Истина);
   НЗП.Прочитать();
   Количество = НаборЗаписей.Количество();
   ТЗ = НаборЗаписей.Выгрузить();    
   ТЗ.Свернуть("Номенклатура, ХарактеристикаНоменклатуры, ЗаказПокупателя, Подразделение, Проект", "Стоимость, Количество");
   
   Для Каждого Стр Из НЗП Цикл
       
       Отбор = Новый Структура();
       Отбор.Вставить("Номенклатура",Стр.Номенклатура);
       Отбор.Вставить("ХарактеристикаНоменклатуры",Стр.ХарактеристикаНоменклатуры);
       Отбор.Вставить("ЗаказПокупателя",Стр.ЗаказПокупателя);
       Отбор.Вставить("Подразделение",Стр.Подразделение);
       Отбор.Вставить("Проект",Стр.Проект);
       Строки = ТЗ.НайтиСтроки(Отбор);
       Стоимость = 0;
       Количество = 0;
       Для Каждого Строка Из Строки Цикл
           Стоимость = Стоимость+Строка.Стоимость;
           Количество = Количество + Строка.Количество;
       КонецЦикла;
       Если Стр.Количество = Количество Тогда
           Стр.Себестоимость = Стоимость;
       КонецЕсли;
       
   КонецЦикла;
   
   НЗП.Записать();

КонецПроцедуры
15 Miss1C
 
05.09.12
18:06
Работает как надо
16 Aprobator
 
05.09.12
18:07
(0) ПриЗаписи документа - офигеть. Нечего тут и думать. Проведение документа, которое делает движения в регистрах после того как документ уже записан все ваши изменения в сад отправляет.
17 Miss1C
 
05.09.12
18:07
Всем спасибо за помощь
18 Miss1C
 
05.09.12
18:08
(16) Извините забыла  - человеческий фактор
19 ssh2006
 
05.09.12
18:13
(1): [с таким ником фото обязательно]
(18):  [Извините забыла  - человеческий фактор]
20 Miss1C
 
05.09.12
18:15
(19) Где ваше фото молодой человек?
21 Aprobator
 
05.09.12
18:16
(18) меня вы этим не обидели, так что извиняться не стоит. А то что схватили суть тут слету - очень даже хорошо. Остальное придет с опытом.
(20) он стесняется.
22 Feanorko
 
05.09.12
18:16
(20) внезапно так :)
23 rbcvg
 
05.09.12
18:17
(20) Мальчиков это правило не касается, надо было регистрироваться с ником МужикБлеад, вопросов было бы меньше.
24 Miss1C
 
05.09.12
18:18
(22) Ну а что, сами фото просите вот и мне интересно знать с кем общаюсь
25 Feanorko
 
05.09.12
18:19
(24) если интересно, то это решается другим способом :)
26 Aprobator
 
05.09.12
18:20
(24) ха - я на свое могу ссылку дать ) Мне тут лениво выкладывать.
27 Feanorko
 
05.09.12
18:21
+(25) и мы не общаемся, мы помогаем :) вот когда будешь помогать - тогда смело и проси :)
28 Feanorko
 
05.09.12
18:22
+(27) исходя из (2), ждём завтра фотку :)
29 Miss1C
 
05.09.12
18:23
(27)По возможности
30 DrShad
 
05.09.12
18:24
(28) да не будет ее 146%
31 rphosts
 
05.09.12
18:24
Miss1C, не забывайте что фото обещали... в след раз уже ничего не подскажут пока не будет фото топлесс.
32 ssh2006
 
05.09.12
18:26
(30) завтра выложит: http://demotivation.me/ysimrrsm88jspic.html
33 Miss1C
 
05.09.12
18:28
(31) Я слова свои держу, по сравнению с некоторыми
34 ssh2006
 
05.09.12
18:30
(33) [Пол: Женский
Род занятий: Спортсменка, комсомолка]

Большая грудь мешает занятиям спортом?
35 Feanorko
 
05.09.12
18:30
(33) завтра мы в этом, надеюсь, убедимся ;)
36 Miss1C
 
05.09.12
18:31
(34) Бегать да, на остальное не жалуюсь
37 Miss1C
 
05.09.12
18:35
(34)Большая это какой размер?
38 ssh2006
 
05.09.12
18:37
(37) че то я сомневаюсь, что ты мисс, адрес какой-то неубедительный, на скорую руку придумывала?
39 Miss1C
 
05.09.12
18:42
(38) Да
40 ssh2006
 
05.09.12
18:52
(39) поиском нашлась какая-то фотка: http://mururoa.narod.ru/en/pages/miss1c.htm
Твоя? Такая бегу мешать не будет.
41 rphosts
 
06.09.12
12:58
ну вот, Miss1C - сказал, Miss1C - сделал!
42 GANR
 
06.09.12
13:00
(0) Я бы из подписки фоновое задание вызвал, которое и сделает доп. записи в РС - там с транзакциями премудрости просто.
43 Feanorko
 
06.09.12
13:24
(41) +1

но тема до конца всё равно не раскрыта :(
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.