Имя: Пароль:
1C
1С v8
Активности проводок
,
0 Avganec
 
10.07.12
14:09
Добрый день. Есть ситуация, бухгалтерия 2.0. Был осуществлен перенос данных и в результате были сформированы документы "ОперацияБух". У документа идут соответственно проводки. Вот собственно вопрос: могут ли у одного документа быть активные и неактивные проводки?
1 DrShad
 
10.07.12
14:10
а смоделировать ситуацию и дать ответ полученный опытным путем?
2 Cube
 
10.07.12
14:11
(0) Могут. Как код напишешь...
3 Avganec
 
10.07.12
14:15
(2) у меня документ, в нем примерно 1000 проводок, около 50 из них я ставлю Активность = Ложь. Но при записи документа система ругается. Если вы знаете как это сделать - скажите.
4 rbcvg
 
10.07.12
14:16
(3) матом ругается?
5 Cube
 
10.07.12
14:18
(3) ОбменДанными.Загрузка = Истина;
6 Avganec
 
10.07.12
14:18
(4) "Запись не верна. Не совпадает активность записей." - я думаю это матом.
(5) - сейчас попробую
7 Avganec
 
10.07.12
14:20
(5) не канает...
8 golden-pack
 
10.07.12
14:20
корректировка записей регистров ?
9 Cube
 
10.07.12
14:21
(7) Я убегаю. Ты код выложи, а то телепатировать сложно...
10 Avganec
 
10.07.12
14:22
Код простой и тупой.

   Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
   |    ХозрасчетныйОбороты.Регистратор
   |ИЗ
   |    РегистрБухгалтерии.Хозрасчетный.Обороты(&НачДата, &КонДата, Регистратор, Счет.Код = ""76.АВ"", , , , ) КАК ХозрасчетныйОбороты
   |
   |СГРУППИРОВАТЬ ПО
   |    ХозрасчетныйОбороты.Регистратор";
   Запрос.УстановитьПараметр("НачДата", Дата('20120101'));
   Запрос.УстановитьПараметр("КонДата", Дата('20120701'));
   Рез = Запрос.Выполнить().Выгрузить();
   Для Каждого СтрокаТЧ Из Рез Цикл
       Док = СтрокаТЧ.Регистратор.ПолучитьОбъект();
       ТаблицаДвижений = Док.Движения.Хозрасчетный;
       ТаблицаДвижений.Прочитать();
       Для Каждого СтрокаДвижения Из ТаблицаДвижений Цикл
           Если ((СтрокаДвижения.СчетДт.Код = "76.АВ") И ((СтрокаДвижения.СчетКт.Код = "68.02")))
               Или ((СтрокаДвижения.СчетКт.Код = "76.АВ") И (СтрокаДвижения.СчетДт.Код = "68.02")) Тогда
               СтрокаДвижения.Активность = Ложь;        
           КонецЕсли;
       КонецЦикла;
       ТаблицаДвижений.Записать();
       Док.Записать();
   КонецЦикла;
11 Cube
 
10.07.12
14:23
(10) И где (5)?
12 Avganec
 
10.07.12
14:24
(11) уже убрал, так как смысла ноль
13 Cube
 
10.07.12
14:24
+(10) Условие убери. У всех записей поставь активность = Ложь
14 Никола_
Питерский
 
10.07.12
14:24
Активность - свойство записи должно быть одинаковым для всех записей одного регистратора, в противном случае платформа не разрешит записать набор в регистр. бла бла бла бла

Глава 4. Реализация задач бухгалтерского учета стр. 473
Книга "Реализация прикладных задач в системе 1С предприятия 8.2"
15 Avganec
 
10.07.12
14:24
(14) спасибо. жестоко...
16 Cube
 
10.07.12
14:25
(3) А, так ты хочешь наколбасить, а не исправить колбасу?)) А зачем?)
На крайний случай, разбей файл на два - с активными и неактивными проводками.
17 Cube
 
10.07.12
14:26
(14) О как...
18 Avganec
 
10.07.12
14:28
(16) да вот придется сделать. А причина простая: был перенос, после выяснилось, что данные корявые, а работать надо. Поэтому было принято решение частичного исправления. Вот и делаю.
19 unregistered
 
10.07.12
14:35
(18) Создай еще один документ.
Вынеси туда "лишние" проводки.

Для набора записей есть метод УстановитьАктивность(<Активность>), который устанавливает значение свойства Активность у всего набора.
20 Никола_
Питерский
 
10.07.12
14:43
(18) да удали их нах ! вот мудрит что то с активностью.
21 Avganec
 
10.07.12
14:52
(20) вот теперь уже, после неудачи с активностью, удаляю. Хотел просто оставить на случай необходимости отката, чтобы потом активировать.
22 PCcomCat
 
10.07.12
14:53
(21)Для такого случая перенеси их в другую операцию.
23 Avganec
 
10.07.12
14:55
(22) решил не заморачиваться, а издеваться над копией с последующим восстановлением и решением необратимости действий.