Имя: Пароль:
1C
 
Замена субконто в проводках без перепроведения для 8.2
0 Vzik2
 
20.12.10
12:38
Подскажите,пожалуйста,есть ли такая обработка для 8.2?
1 Dmitrii
 
гуру
20.12.10
12:41
(0) Напиши руками. 15 минут займет.
2 Vzik2
 
20.12.10
12:43
Ну я пока не очень представляю,с чего начать)
3 Живой Ископаемый
 
20.12.10
12:44
эта обработка называется Поиск и замена значений.. есть на ИТС. о идее работает в режиме толстого клиента
4 luckyluke
 
20.12.10
12:44
(2) с набора записей регистра бухгалтерии думаю стоит...
5 Vzik2
 
20.12.10
12:51
Обработка с дска итс не подощла,к сожалению
6 Живой Ископаемый
 
20.12.10
12:53
2(5) хы... это прикольно! а почему не подошла? потому что дата запрета редактирования периода выставлена?
7 Серый Пес
 
20.12.10
12:59
А где же совет вызвать специалиста?
8 Dmitrii
 
гуру
20.12.10
13:03
Я так делал:
Задача стояла заменить любое значение субконто одного вида на НовоеЗначениеСубконто.


Функция ЗаменитьСубконто(Проводка, СторонаПроводки, Организация)
 //ЗначениеСубконто = Неопределено;
 ЗначениеСубконто = Проводка["Субконто"+СторонаПроводки][Субконто];
 Если НЕ ЗначениеЗаполнено(ЗначениеСубконто) Тогда
  Возврат Ложь;
 КонецЕсли;
 Если НовоеЗначениеСубконто <> ЗначениеСубконто Тогда
  Проводка["Субконто"+СторонаПроводки][Субконто] = НовоеЗначениеСубконто;
  Возврат Истина;
 КонецЕсли;
 Возврат Ложь;
КонецФункции

Процедура КнопкаВыполнитьНажатие(Кнопка)
  Состояние("Получение списка регистраторов");
  Запрос=новый Запрос;
  Запрос.текст=
  "ВЫБРАТЬ РАЗЛИЧНЫЕ
  |    ХозрасчетныйОбороты.Регистратор,
  |    ХозрасчетныйОбороты.Период КАК Период,
  |    ХозрасчетныйОбороты.Организация
  |ИЗ
  |    РегистрБухгалтерии.Хозрасчетный.Обороты(
  |            &ДатаНачала,
  |            &ДатаОкончания,
  |            Регистратор,
  |            Счет = &Счет,
  |            &ВидСубконтоДокументыРеализации,
  |            (НЕ Субконто1 ЕСТЬ NULL )
  |                И Субконто1 <> НЕОПРЕДЕЛЕНО,
  |            ,
  |            ) КАК ХозрасчетныйОбороты
  |
  |УПОРЯДОЧИТЬ ПО
  |    Период";
  Запрос.УстановитьПараметр("Счет", Счет);
  Запрос.УстановитьПараметр("ДатаНачала", НачалоДня(ДатаНачала));
  Запрос.УстановитьПараметр("ДатаОкончания", КонецДня(ДатаОкончания));
  ВидСубконтоДокументыРеализации = новый Массив;
  ВидСубконтоДокументыРеализации.Добавить(Субконто);
  Запрос.УстановитьПараметр("ВидСубконтоДокументыРеализации", ВидСубконтоДокументыРеализации);
  ТаблицаРегистраторов = Запрос.Выполнить().Выгрузить();
  Состояние("Обработка движений");
  Для Каждого СтрокаТаблицы Из ТаблицаРегистраторов Цикл
     Организация = СтрокаТаблицы.Организация;
     ПроводкиБУ = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
     ПроводкиБУ.Отбор.Регистратор.Установить(СтрокаТаблицы.Регистратор);
     ПроводкиБУ.Прочитать();
     ИзмененыПроводки = Ложь;
     Для Каждого Проводка Из ПроводкиБУ Цикл
       Заменено = Ложь;
       Если Проводка.СчетДт = Счет Тогда
         СторонаПроводки = "Дт";
         Заменено = ЗаменитьСубконто(Проводка, СторонаПроводки, Организация);
       КонецЕсли;
       ИзмененыПроводки = ИзмененыПроводки ИЛИ Заменено;
       Заменено = Ложь;
       Если Проводка.СчетКт = Счет Тогда
         СторонаПроводки = "Кт";
         Заменено = ЗаменитьСубконто(Проводка, СторонаПроводки, Организация);
       КонецЕсли;
       ИзмененыПроводки = ИзмененыПроводки ИЛИ Заменено;
     КонецЦикла;
     Если ИзмененыПроводки Тогда
       ПроводкиБУ.Записать();
       Сообщить("Перезаписаны проводки по документу: "+Строка(СтрокаТаблицы.Регистратор));
     КонецЕсли;
   КонецЦикла;
   Сообщить("Перезапись проводок завершена.");
 КонецПроцедуры