|
Восстановление субконто | ☑ | ||
---|---|---|---|---|
0
Tanis
01.07.13
✎
15:15
|
Добрый день!
Подскажите, пожалуйста. У счета было 3-е субконто, сейчас обнаружилось, что его кто-то убрал или еще чего-то... Поставили в плане счетов обратно. В документах данные по нему отображаются... Как сделать чтоб и в оборотке отображалось? |
|||
1
zak555
01.07.13
✎
15:16
|
заполнить РБ ?
|
|||
2
Tanis
01.07.13
✎
15:17
|
получается и он слетел?
|
|||
3
ale-sarin
01.07.13
✎
15:18
|
(0) Когда "его кто-то убрал" данные об этом субконто в записях регистров бухгалтерии сказали "до свидания".
Так что заполняйте их заново, хорошо хоть в доках остались. Можно доки перепровести, а можно и обработку состряпать. |
|||
4
Tanis
01.07.13
✎
15:20
|
ни чего себе.... Вот это засада...
Без перепроведения никак не обойтись? |
|||
5
Tanis
01.07.13
✎
15:25
|
их нельзя там из дока вытащить и в РБ вставить без проведения? А просто перезапись дока не подействует?
|
|||
6
ale-sarin
01.07.13
✎
15:27
|
(5) "из дока вытащить и в РБ вставить без проведения", я и говорил, что можно обработку написать.
|
|||
7
Tanis
01.07.13
✎
15:29
|
это уже лучше...
теперь будем устранять другую проблему. С РБ не работал, не записывал в них... а просто при записи дока не подставится? видимо нет, записи в регистры при проведении попадают |
|||
8
ale-sarin
01.07.13
✎
15:31
|
(7) Совершенно верно.
|
|||
9
Lama12
01.07.13
✎
15:32
|
(7) Проще перепровести.
Не знаю какая конфа. Но обработкой замучаешься. В некоторых документах простановка субконто не совсем однозначна и прозрачна. Самое интересное будет с документами типа "Корректировка записей регистров". |
|||
10
Lama12
01.07.13
✎
15:34
|
А лучше найти того кто субконто удалил, и заставить вручную вбивать их.
|
|||
11
ale-sarin
01.07.13
✎
15:36
|
Да, наверняка, сам автор так обновление сделал))
|
|||
12
Tanis
01.07.13
✎
15:40
|
не обновлял. :-)
так что это не я. :-) вручную вбивать не надо, так как в доках они стоят. Если сделать обработку, то она просто подставит в РБ перепроводить не будет? последовательность доков не затронет? |
|||
13
ale-sarin
01.07.13
✎
15:41
|
(12) Елки-палки, обработкой обходишь нужные регистраторы, создаешь набор записей РБ, читаешь его, изменяешь, записываешь. Сам док остается не изменным. Только имей ввиду, по какому алгоритму проводки строятся,и как это субконто должно заполняться.
|
|||
14
Tanis
01.07.13
✎
15:43
|
нашел пример здесь... он подойдет? только там свои условия поставлю
// Задать выбираемые значения. ВыбранныйОтветственный = Справочники.Пользователи.НайтиПоНаименованию("Иванцова"); ВыбранныйКонтрагент = Справочники.Контрагенты.НайтиПоКоду("00027"); ВыбранныйДоговор = Справочники.ДоговорыКонтрагентов.НайтиПоКоду("00013"); ВыбранныйДокумент = Документы.ДокументРасчетовСКонтрагентом.НайтиПоНомеру(2, '20050101'); ВыбранныйСчет = Справочники.БанковскиеСчета.НайтиПоКоду("00001"); ВыбраннаяСтатья = Справочники.СтатьиДвиженияДенежныхСредств.НайтиПоКоду("00002"); ВыбраннаяОрганизация = Справочники.Организации.НайтиПоКоду("00001"); ВыбраннаяВалюта = Справочники.Валюты.НайтиПоКоду(810); // Создать будущий регистратор. ДатаЗаписи = ТекущаяДата(); Документ = Документы.ОперацияБух.СоздатьДокумент(); Документ.Дата = ДатаЗаписи; Документ.Организация = ВыбраннаяОрганизация; Документ.Ответственный = ВыбранныйОтветственный; Документ.Содержание = "Оплата поставщику"; Документ.Записать(); // Создать набор записей. НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Регистратор.Установить(Документ.Ссылка); Движение = НаборЗаписей.Добавить(); Движение.Регистратор = Документ.Ссылка; Движение.Период = ДатаЗаписи; // Заполнить счет дебета. Движение.СчетДт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("60.01"); // Заполнить аналитику счета дебета. Движение.СубконтоДт.Контрагенты = ВыбранныйКонтрагент; Движение.СубконтоДт.Договоры = ВыбранныйДоговор; Движение.СубконтоДт.ДокументыРасчетовСКонтрагентами = ВыбранныйДокумент; // Заполнить счет кредита. Движение.СчетКт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("51"); // Заполнить аналитику счета кредита. Движение.СубконтоКт.БанковскиеСчета = ВыбранныйСчет; Движение.СубконтоКт.СтатьиДвиженияДенежныхСредств = ВыбраннаяСтатья; // Балансовое измерение. Движение.Организация = ВыбраннаяОрганизация; // Балансовый ресурс. Движение.Сумма = 300000; // Реквизиты.Движение.НомерЖурнала = "БК"; Движение.Содержание = "Оплата поставщику"; // Записать набор записей. НаборЗаписей.Записать(); |
|||
15
ale-sarin
01.07.13
✎
15:46
|
(14) Подойдет только для чтения набора записей. Дальше циклом обходишь записи и по условию изменяешь значение субконто. Набор записей записать после обхода всех записей, после каждой - не надо.
Это так, на всякий случай. |
|||
16
Nenaviwu1c20
01.07.13
✎
15:47
|
Нет это совсем другая песня.Это создани е операция програмным путем.Напиши выборку по счету с которого слетело субконто,а затем через набор записей проставьб его просто в доках наименования реквизитов которые ты хочешь засунуть в субконто может быть разным,поэтому лучший вариант это перепроведение
|
|||
17
ale-sarin
01.07.13
✎
15:48
|
+15 Сначала на копии тренируйся.
|
|||
18
Nenaviwu1c20
01.07.13
✎
15:49
|
(15) (17) Ты что это же создание новых проводок-операций,а надо старые восстановить
|
|||
19
ale-sarin
01.07.13
✎
15:51
|
(18) Я ж не сказал, что весь кусок пойдет. Да и автор сам думаю понял. Но если автор не понял, то да: не надо код из (14) использовать. (16) более точно и логично расписал.
|
|||
20
Nenaviwu1c20
01.07.13
✎
15:53
|
(19) И все таки я думаю перепроводит пусть
|
|||
21
ale-sarin
01.07.13
✎
15:55
|
(20) Согласен, при наличии такого "опыта" в записях РБ, как у автора, лучше перепровести документы.
Но как тогда он наберет этот опыт? А вот потренируется на копии, накосячит пару раз, и полетит дальше. Есть согласие? |
|||
22
Tanis
01.07.13
✎
16:03
|
Буду конечно на копии сначала....
Перепроводить это отпадает... т.к ведется много организаций и все перепроводить с 12 года... |
|||
23
Tanis
01.07.13
✎
16:04
|
Порядок с РС схожий?
|
|||
24
Tanis
01.07.13
✎
16:34
|
данные только в одном виде документа остались... в операциях этих данных тоже нет
|
|||
25
Tanis
01.07.13
✎
16:42
|
хватаясь за последние нити надежды, чтоб не писать обработку, так как вопрос оч.срочный...
если из копии перенос через xml, то получится перенести? на остальное не повлияет? |
|||
26
hhhh
01.07.13
✎
17:13
|
(25) из бекапа загрузИте. ВыгрузкаЗагрузкаXML
|
|||
27
Tanis
01.07.13
✎
17:13
|
Подскажите, пожалуйста, перенос РБ через xml, не повлечет за собой ничего критичного?
|
|||
28
Tanis
01.07.13
✎
17:14
|
(26) спасибо
Ничего не должно произойти? |
|||
29
timurhv
01.07.13
✎
17:25
|
Однажды коллега аналогичный финт провел, я писал обработку по следующему принципу:
1. Выборка документов по счету; 2. Начать транзакцию + провести документ; 3. Считать получившиеся проводки и вынести в отдельную таблицу значений; 4. Отменить транзакцию; 5. Сопоставить существующие проводки (по всем полям, кроме затертого субконто) с таблицей значений из п.3; 6. Изменить движения в соответствии с п.5. Не 100% результат, зато более точный, остальное можно и вручную добить. |
|||
30
Tanis
01.07.13
✎
17:32
|
что там слишком много объектов выгружается...
точно потом ничего критичного при загрузке не произойдет? Записи заменятся или как? |
|||
31
Lama12
01.07.13
✎
22:35
|
(29) Хороший вариант!
|
|||
32
AlexNew
01.07.13
✎
22:40
|
(29) Убил бы с перепровением.
|
|||
33
Tanis
01.07.13
✎
22:42
|
На (30) ответьте, пожалуйста.
|
|||
34
Tanis
01.07.13
✎
22:44
|
(29) до такого финта мне еще далеко, по крайней мере быстро это сделать.
а вернуть проводки надо срочно... Поэтому решил использовать выгрузку - загрузку РБ по этому счету. Но волнует (30) |
|||
35
AlexNew
01.07.13
✎
22:47
|
(34) Можешь не волноваться, пока они будут загружаться для тебя все кончится.
|
|||
36
Tanis
01.07.13
✎
22:50
|
(35) что именно кончится?
|
|||
37
AlexNew
01.07.13
✎
23:00
|
(36) А вот тут масса вариантов.
|
|||
38
ОбычныйЧеловек
01.07.13
✎
23:01
|
(0) http://infostart.ru/public/183040/ закоментаришь перегрузку регистров накопления и вперед.
|
|||
39
ОбычныйЧеловек
01.07.13
✎
23:01
|
Ежели копия с движения есть разумеется...
|
|||
40
Tanis
01.07.13
✎
23:33
|
(39) копия есть, я из нее и выгружал в xml.
т.е лучше использовать данную обработку, чем xml? и там в ней как осуществляется подбор? я так понял по докам, а эти доки можно выбрать автоматом где используется данный счет, или дописывать надо? |
|||
41
ОбычныйЧеловек
01.07.13
✎
23:38
|
(40) Что лучше, что хуже решай всегда сам. По поводу подбора - его придется реализовать самому - в этом нет ничего сложного.
|
|||
42
Tanis
01.07.13
✎
23:44
|
(41) тогда вопрос изменю, что безопаснее? и не повлечет других проблем?
Выборку сделаю... |
|||
43
timurhv
02.07.13
✎
00:48
|
(32) Есть варианты безопаснее?
|
|||
44
Tanis
02.07.13
✎
15:28
|
Странная вещь получается...
При выгрузке в xml ставлю отбор по условию ссылка.регистратор = Док, выгружает 1 док. Ставлю отбор по счетам, показывает штук 15 доков, а нажимаю выгрузить, выгружает чуть ли не весь РБ |
|||
45
Tanis
02.07.13
✎
15:29
|
и файл весит 1,5 Гб
|
|||
46
Tanis
02.07.13
✎
18:12
|
Возвращаюсь к данному вопросу, а именно к обработке из (38)
Обработка не распознаёт полностью док. Выдает ошибку {Форма.Форма.Форма(88)}: Значение не является значением объектного типа (Filter) НаборЗаписейИсточник.Filter.Регистратор.Установить(ДокументИсточникСсылка); Кусок кода Если СинхронизироватьСтатусы Тогда Если ДокументИсточникСсылка.ПометкаУдаления <> ДокументПриемникСсылка.ПометкаУдаления Тогда Если ДокументПриемникОбъект=Неопределено Тогда ДокументПриемникОбъект=ДокументПриемникСсылка.ПолучитьОбъект(); КонецЕсли; ДокументПриемникОбъект.ПометкаУдаления=ДокументИсточникСсылка.ПометкаУдаления; ДокументПриемникОбъект.Записать(); КонецЕсли; Если ДокументИсточникСсылка.Проведен <> ДокументПриемникСсылка.Проведен Тогда Если ДокументПриемникОбъект=Неопределено Тогда ДокументПриемникОбъект=ДокументПриемникСсылка.ПолучитьОбъект(); КонецЕсли; ДокументПриемникОбъект.Проведен=ДокументИсточникСсылка.Проведен; ДокументПриемникОбъект.Записать(); КонецЕсли; КонецЕсли; Для каждого мдОбъект Из ДокументИсточникСсылка.Метаданные().RegisterRecords Цикл стрТипВид=стрЗаменить(мдОбъект.FullName(), ".", Символы.ПС); стрТипРегистра=СтрПолучитьСтроку(стрТипВид, 1); стрВидРегистра=СтрПолучитьСтроку(стрТипВид, 2); //Если стрТипРегистра="РегистрНакопления" Тогда // НаборЗаписейИсточник=БазаИсточник.РегистрыНакопления[стрВидРегистра].СоздатьНаборЗаписей(); // НаборЗаписейПриемник=РегистрыНакопления[стрВидРегистра].СоздатьНаборЗаписей(); //ИначеЕсли стрТипРегистра="РегистрСведений" Тогда // НаборЗаписейИсточник=БазаИсточник.РегистрыСведений[стрВидРегистра].СоздатьНаборЗаписей(); // НаборЗаписейПриемник=РегистрыСведений[стрВидРегистра].СоздатьНаборЗаписей(); //ИначеЕсли стрТипРегистра="РегистрБухгалтерии" Тогда Если стрТипРегистра="РегистрБухгалтерии" Тогда НаборЗаписейИсточник=БазаИсточник.РегистрыБухгалтерии[стрВидРегистра].СоздатьНаборЗаписей(); НаборЗаписейПриемник=РегистрыБухгалтерии[стрВидРегистра].СоздатьНаборЗаписей(); КонецЕсли; НаборЗаписейИсточник.Filter.Регистратор.Установить(ДокументИсточникСсылка); НаборЗаписейИсточник.Прочитать(); |
|||
47
Tanis
02.07.13
✎
18:13
|
Вот здесь ДокументИсточникСсылка.Метаданные().RegisterRecords и здесь мдОбъект.FullName()
Ошибка чтения значения |
|||
48
Tanis
02.07.13
✎
18:23
|
Проблема видимо отсюда начинается:
Для каждого СтрокаТабличнойЧасти Из ОбъектыСинхронизации Цикл ДокументПриемникОбъект=Неопределено; ДокументПриемникСсылка=СтрокаТабличнойЧасти.ДокументСсылка; Состояние("Обрабатывается документ:"+СокрЛП(ДокументПриемникСсылка)+" строка №"+Строка(СтрокаТабличнойЧасти.НомерСтроки)+" из"+Строка(ВсегоСтрок)); стрУникальныйИдентификатор=БазаИсточник.NewObject("УникальныйИдентификатор", Строка(ДокументПриемникСсылка.УникальныйИдентификатор())); ДокументИсточникСсылка=БазаИсточник.Документы[ДокументПриемникСсылка.Метаданные().Имя].GetRef(стрУникальныйИдентификатор); GetRef - не распознает |
|||
49
Tanis
02.07.13
✎
18:36
|
Подскажите, кто знает. Вопрос очень срочный....
|
|||
50
Tanis
02.07.13
✎
19:01
|
Люди, помощь очень нужна!!!
|
|||
51
AlexNew
02.07.13
✎
19:06
|
Ну и ты получаешь объект (УИ) из другой базы.
|
|||
52
Tanis
02.07.13
✎
19:10
|
Это копия.
Так как же тогда обработка работает? Написано, что должна синхронизировать данные. Она 75% определяет верно. |
|||
53
AlexNew
02.07.13
✎
19:14
|
А, да ищет в базе, откуда УИ. Нет в источнике документа с таким УИ,
|
|||
54
Tanis
02.07.13
✎
19:29
|
Оригинал что от копии отличается?
Еще что интересно, если обратно раскомментировать строки по РС и РН, то все нормально проходит. Но их мне трогать не надо, и автор посоветовал их закомментировать... Может после этого тогда условие надо как-то изменить |
|||
55
Tanis
02.07.13
✎
19:32
|
Все, понятно. Надо было Условие не так изменить, надо было поставить
Если НЕ стрТипРегистра="РегистрБухгалтерии" Тогда Продолжить; Иначе |
|||
56
Tanis
02.07.13
✎
19:33
|
теперь надо запрос на отбор написать, и пробовать дальше...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |