Имя: Пароль:
1C
 
Как перебрать в цикле движения по бухгалтерии и ненужные проводки удалить?
0 dimon_ddv
 
15.09.09
11:16
Добрый день всем!!!
У нас бухгалтерия 8.1.
Поделитесь...
Как перебрать в цикле движения по бухгалтерии и ненужные проводки удалить?
1 igork1966
 
15.09.09
11:17
(0) RTFM?
2 IronDemon
 
15.09.09
11:17
А что такое "ненужные проводки"?
3 igork1966
 
15.09.09
11:18
(2) налоги?  ;-)
4 hhhh
 
15.09.09
11:19
(2) которые от прошлого главбуха остались.
5 dimon_ddv
 
15.09.09
11:22
Нет переносили данные в чистую Бух из рабочей... в рабочей велись несколько контор, в чистую же перенесли данные только по одной... переносили обработкой выгр/загр данных в одинаковых конфигурациях.... то есть перенеслось из регистра бухгалтерии вся инфа по всем организациям, а документы только по нужной. теперь висят проводки в журнале проводок с регистраторами в виде "объект не найден" :)
6 dimon_ddv
 
15.09.09
11:24
Надо перебирать в цикле движения по регистру, проверять условие - и удалять проводки. есть у кого пример подобной обработки?
7 IronDemon
 
15.09.09
11:28
Начни с запроса
8 dimon_ddv
 
15.09.09
11:31
(7) запросом я выведу список проводок, но как удалить их в переборке данных запроса?

   // Вставить содержимое обработчика.
   Запрос = Новый Запрос("ВЫБРАТЬ
           |    ХозрасчетныйОстаткиИОбороты.Организация Как Организация
           |ИЗ
           |    РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты КАК ХозрасчетныйОстаткиИОбороты");
   
   Выборка=запрос.выполнить().выбрать();
   Пока выборка.следующий() цикл
       Если (Выборка.Организация = Орг1) или (Выборка.Организация = Орг2) Тогда
           //пропускаем проводку
       Иначе
           // тут надо удаление проводки написать... :)
       КонецЕсли;
   КонецЦикла;
9 hhhh
 
15.09.09
11:38
(6) эта обработка называется ТИИ. Ставишь галочку "Удалять объекты" и вперед.
10 dimon_ddv
 
15.09.09
11:43
(9) расшифруй ТИИ пожалуйста.
11 hhhh
 
15.09.09
11:46
тестирование и исправление информационной базы
12 dimon_ddv
 
15.09.09
11:47
дак это же для 7.7, в 8.1 такого не встречал
13 hhhh
 
15.09.09
11:50
(12) прикалываешься?
14 dimon_ddv
 
15.09.09
11:52
честно туплю.... по крайней мере ни разу не пользовался
15 dimon_ddv
 
15.09.09
11:54
я в ней не вижу как задать условие что удалять...
16 НЕА123
 
15.09.09
11:54
(0)
удаление записей с битыми регистраторами.

Запрос = Новый Запрос("ВЫБРАТЬ РАЗЛИЧНЫЕ
           |    ХозрасчетныйОстаткиИОбороты.Регистратор Как Док
           |ИЗ
           |    РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты КАК ХозрасчетныйОстаткиИОбороты ГДЕ ХозрасчетныйОстаткиИОбороты.Регистратор.Ссылка ЕСТЬ NULL");

  Выборка=запрос.выполнить().выбрать();

   Проводки = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();

   Пока выборка.следующий() цикл
       Проводки.Отбор.Регистратор.Установить(Выборка.Док);
       Проводки.Записать(ИСТИНА);
   КонецЦикла;

не проверял.
17 dimon_ddv
 
15.09.09
11:58
(16) что-то подобное и нужно, только не понял вот тут что делается:

   Пока выборка.следующий() цикл
       Проводки.Отбор.Регистратор.Установить(Выборка.Док);
       Проводки.Записать(ИСТИНА);
   КонецЦикла;
18 hhhh
 
15.09.09
12:00
(17) записывается пустой набор в движения документа Регистратор.
19 dimon_ddv
 
15.09.09
12:00
(11) ТиИ удаляет объекты с ошибками, а не записи с пустыми ссылками в регистре
20 hhhh
 
15.09.09
12:01
(19) там не пустая ссылка, а полная. Просто она "битая".
21 НЕА123
 
15.09.09
12:02
(17)
это про записать пустоту.
остальное в СП.
22 dimon_ddv
 
15.09.09
12:03
(21) где? :)
23 НЕА123
 
15.09.09
12:05
(22)
СП = мужик в шапке = синтакс-помощник
24 dimon_ddv
 
15.09.09
12:09
(23) :) то есть обнуляем ссылки у проводок, а затем ищем эти проводки и удаляем, это предлагаешь по сути?
25 dimon_ddv
 
15.09.09
12:11
а может сразу:    
   Пока выборка.следующий() цикл
       Проводки.Отбор.Регистратор.Установить(Выборка.Док);
       Проводки.Удалить();
   КонецЦикла;
или не прокатит??? мне нужно вообще избавиться от этих проводок, чтобы в базе их небыло!!!
26 hhhh
 
15.09.09
12:14
(25) тогда и нужную организацию удалишь.
27 dimon_ddv
 
15.09.09
12:17
запрос проверил - не работает... измерения Регистратор нет
28 dimon_ddv
 
15.09.09
12:17
{Форма.Форма(28)}: Ошибка при вызове метода контекста (Выполнить): {(4, 117)}: Поле не найдено "ХозрасчетныйОстаткиИОбороты.Регистратор.Ссылка"
РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты КАК ХозрасчетныйОстаткиИОбороты ГДЕ ХозрасчетныйОстаткиИОбороты.<<?>>Регистратор.Ссылка ЕСТЬ NULL
  Выборка=запрос.выполнить().выбрать();
по причине:
{(4, 117)}: Поле не найдено "ХозрасчетныйОстаткиИОбороты.Регистратор.Ссылка"
РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты КАК ХозрасчетныйОстаткиИОбороты ГДЕ ХозрасчетныйОстаткиИОбороты.<<?>>Регистратор.Ссылка ЕСТЬ NULL
29 hhhh
 
15.09.09
12:23
(28) так тебя просили СП еще почитать.

РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(,, Регистратор) КАК .....
30 dimon_ddv
 
15.09.09
12:43
(29) поправил и запустил ... ждемс :)  по крайней мере не ругается уже 5 минут как :)
31 dimon_ddv
 
15.09.09
12:44
сглазил :)
ошибочка:
{Форма.Форма(38)}: Недостаточно фактических параметров
       Проводки.Удалить();
32 dimon_ddv
 
15.09.09
12:46
Проводки.Удалить() - удаляет субконто а не саму проводку :(
33 hhhh
 
15.09.09
13:08
(32) Проводки.Удалить() - это твоя выдумка. На самом деле

Проводки.Записать(ИСТИНА);

как и советуют в (16).
34 dimon_ddv
 
15.09.09
13:14
(33)

{Форма.Форма(41)}: Ошибка при вызове метода контекста (Записать): Ошибка записи! Не установлен отбор по регистратору (Регистр бухгалтерии: Журнал проводок (бухгалтерский учет))
       Проводки.Записать(Истина);
35 dimon_ddv
 
15.09.09
13:15
общий текст:

Запрос = Новый Запрос("ВЫБРАТЬ РАЗЛИЧНЫЕ
           |    ХозрасчетныйОстаткиИОбороты.Регистратор Как Док
           |ИЗ
           |    РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(,, Регистратор) КАК ХозрасчетныйОстаткиИОбороты ГДЕ ХозрасчетныйОстаткиИОбороты.Регистратор.Ссылка ЕСТЬ NULL");

  Выборка=запрос.выполнить().выбрать();

   //Проводки = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();

   Пока выборка.следующий() цикл
       //Выборка.Владелец().Пустой();
       Проводки = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
       Проводки.Отбор.Регистратор.Установить(Выборка.Док);
       Проводки.УстановитьАктивность(Ложь);
       Проводки.Записать(Истина);
   КонецЦикла;
36 dimon_ddv
 
15.09.09
13:40
как вообще удаляются проводки?
37 НЕА123
 
15.09.09
13:50
лучше без остатков и оборотов.
зачем устанавливать активность?


Запрос = Новый Запрос("ВЫБРАТЬ РАЗЛИЧНЫЕ

           |    Хозрасчетный.Регистратор Как Док
           |ИЗ
           |    РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный ГДЕ Хозрасчетный.Регистратор.Ссылка ЕСТЬ NULL");

  Выборка=запрос.выполнить().выбрать();

  Проводки = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();

   Пока выборка.следующий() цикл
      Если ЗначениеЗаполнено(Выборка.Док) Тогда //Регистратор мб пустым
       Проводки.Отбор.Регистратор.Установить(Выборка.Док);
       Проводки.Записать(Истина);
      Иначе
       Сообщить("ПустаяСсылка!!!");
      КонецЕсли;
   КонецЦикла;
38 dimon_ddv
 
16.09.09
07:14
(37) ОГРОМНЕЙШЕЕ СПАСИБО!!! все сделалось на ура :)
39 dimon_ddv
 
16.09.09
11:22
Это же применимо и к регистрам накопления, формирующим итоги.