Изменить реквизиты без перепроведения документов 1с

Изменение реквизитов дока без перепроведения

Я
   lirt82

01.08.16 — 14:48

Можно ли изменить в некоторых видах доков реквизит с одного на другой  без перепроведения?

Напрм. в документе «Акт сверки» был указан некорректный контрагент «Эквайер», необходимо его поменять на контрагента «Сбербанк».

Также в документах «Отчет о розн. продажах», «Платежное поручение» поменять реквизит договор с «договор эквайринга» на «договор сбербанка». Доки 2014 года, поэтому документы перепроводить нельзя. Обработка поиск и замена дублирующих не поможет так как нужно чтоб в базе остались оба реквизита, но в части доков один реквизит а в другой части новый(другой) реквизит.

  

Партнерская программа EFSOL Oblako

   Heckfy

1 — 01.08.16 — 14:48

Загрузка=Истина;

   Быдло замкадное

2 — 01.08.16 — 14:53

групповая обработка справочников и документов меняет реквизиты но не перепроводит доки.

Но толку то? В движениях будут старые справочники

   lirt82

3 — 01.08.16 — 14:55

(2) буду уточнять насчет движении! иначе смысла нет в смене реквизитов:).

   Быдло замкадное

4 — 01.08.16 — 14:58

обработка УниверсальныйРедакторРеквизитов может даже регистры менять вроде

   Serg_1960

5 — 01.08.16 — 15:09

(0) Нет, нет и ещё раз нет. Нельзя изменять реквизиты, которые участвуют в движениях или оказывают влияние на их формирование.

Хотя… с другой стороны… если очень хочется… то можно :)

Можно обработкой «синхронизировано» вносить изменения и в сам документ и в его движения. Это как бы не совсем «перепроведение».

   Пузан

6 — 01.08.16 — 15:11

объектДокумент.ОбменДанными.Загрузка = Истина;

объектДокумент.Записать(РежимЗаписиДокумента.Запись);

В принципе достаточно, чтобы в большинстве типовых документов не проводилось никаких проверок при записи документа и при записи он не делал никаких движений (не изменялись существующие и не появлялись новые).

   Serg_1960

7 — 01.08.16 — 15:13

Но если, не дай бог, кто-то перепроведет документ — то изменятся движения и могут измениться остатки и обороты. Тогда прощай баланс :)

   Пузан

8 — 01.08.16 — 15:18

(7) Ну это понятно. Но может человек хочет коммент в документе поменять, или другой реквизит не влияющий на движения, но чтобы не сбить последовательность и не отправить док в обмен.

   Пузан

9 — 01.08.16 — 15:19

Аааа, гоню, он таки договор хочет поменять. Ну если он точно знает что делает, то дело его.

   lirt82

10 — 01.08.16 — 18:15

Уточнение

1) изменить нужно реквизиты в доках, это ладно можно сделать типовой групповой обработкой

2) также нужно изменить движения во всех регистрах в которых участвует этот измененный

реквизит, иначе толку…как написал в (2)..сформируют отчет или тот же Акт сверки а данные

останутся теми же.

3) перепроводить доки нельзя так как доки еще 2014 года, конфа Управление торговлей доработанная,

доки это напрм. отчеты о розничных продажах…и неизвестно что начнется при перепроведении продаж:)

База УРИБ сразу вопрос, эти изменения нужны бухам в головной базе,

неизвестно что будет при обмене в периферийных:)

Скорее всего нужно будет написать обработку которая будет изменять движения только в тех

регистрах где по условию встречается измененный реквизит, чтоб не затронуть другие движения.

Вообщем менять только те регистры где участвует наш новый измененый реквизит.

А вот что будет с остатками и оборотами незнаю:)

И еще нужно будет посмотреть сами регистры чтоб узнать что является

регистратором для этого регистра, можно обработкой напрямую к ним обращатся и изменять их?:)

   b_ru

11 — 01.08.16 — 19:14

>>Скорее всего нужно будет написать обработку

  

b_ru

12 — 01.08.16 — 19:14

можно просто скачать «Инструменты разработчика»

Если меняю значение реквизита в документе из внешней обработки например дату, то изменения отлично сохраняются и записываются в документ без проведения

1C
1
2
3
4
5
6
7
8
9
10
Объект = Ссылка.ПолучитьОбъект();
                    
                Объект.ДатаИсполнения = НоваяДатаИсполнения;
                
                Попытка
                    Объект.Записать();
                Исключение
                    ОбщегоНазначения.СообщитьОбОшибке(ОписаниеОшибки());
                КонецПопытки;
    ОтправитьПисьмо(Ссылка);

Но потребовалось по другой доработке внести изменения в этом же документе из самой формы документа и вот тут начались проблемы, даже если пишу в коде (пробовал по разному записывать по методу тыка

1C
1
2
3
4
5
//ОбъектДок = ЭтотОбъект.Ссылка.ПолучитьОбъект();
    //ОбъектДок.ОбменДанными.Загрузка = Истина; 
    //ОбъектДок.ДополнительныеСвойства.Вставить("ОтключитьМеханизмРегистрацииОбъектов");
    ////ОбъектДок.Записать(РежимЗаписиДокумента.Запись);
    ////Ссылка.Записать(РежимЗаписиДокумента.Запись);

и все бесполезно, мои данные в документ записываются, но затем начинают срабатывать системные события при записи — ПриЗаписи(), ПередЗаписью(), ПослеЗаписи(), поттоом еще система переспрашивает надо записать или нет и записывает в конце концов с проведением (хотя я изначально выбирал запись без проведения) вопросов два:
1. Почему из обработки данные в документе изменяются и записываются и не проводятся?
2. В каких случаях срабатывают все эти системные функции (ПриЗаписи(), ПередЗаписью(), ПослеЗаписи() и тд.), и в каких случаях они не срабатывают.

Добавлено через 11 минут
о боги, сработало

1C
1
2
ЭтотОбъект.Записать(РежимЗаписиДокумента.Запись);
    Закрыть();

бывают же чудеса на свете, вчера бился весь день, а сегодня с первого раза получилось. (с пол оборота завелось)

Добавлено через 15 секунд
о боги, сработало

1C
1
2
ЭтотОбъект.Записать(РежимЗаписиДокумента.Запись);
    Закрыть();

бывают же чудеса на свете, вчера бился весь день, а сегодня с первого раза получилось. (с пол оборота завелось)

Разрешение пользователям редактировать отдельные реквизиты документа без перепроведения или просто одни реквизиты разрешать, а другие запрещать.

Разрешение пользователям редактировать отдельные реквизиты документа без перепроведения или просто одни реквизиты разрешать, а другие запрещать.

Иногда необходимо разрешить редактирование некоторых реквизитов документа без перепроведения. Например: Комментарий, АдресКонтрагента, КонтактноеЛицо. Ещё бывает необходимым разрешить изменение отдельных реквизитов в закрытых документах. Например, поставить отметку о состоянии доставки и написать комментарий.

В модуле менеджера документа пишем функцию, которая определяет массив допустимых к редактированию реквизитов

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

// Возвращает массив имён реквизитов, разрешённых для изменнения без перепроведения.

// Если получен параметр типа Массив, то имена реквизитов добавляются в него

Функция ПолучитьМассивРеквизитовИзменяемыхБезПерепроведения(МассивРеквизитовДопустимыхКИзменению = Неопределено) Экспорт

Если Не ТипЗнч(МассивРеквизитовДопустимыхКИзменению) = Тип(«Массив») Тогда

МассивРеквизитовДопустимыхКИзменению = Новый Массив;

КонецЕсли;

//Типовые реквизиты

МассивРеквизитовДопустимыхКИзменению.Добавить(«Грузополучатель»);

МассивРеквизитовДопустимыхКИзменению.Добавить(«ДоверенностьНомер»);

МассивРеквизитовДопустимыхКИзменению.Добавить(«ДоверенностьДата»);

МассивРеквизитовДопустимыхКИзменению.Добавить(«ДоверенностьНомер»);

МассивРеквизитовДопустимыхКИзменению.Добавить(«ДоверенностьВыдана»);

МассивРеквизитовДопустимыхКИзменению.Добавить(«ДоверенностьЧерезКого»);

МассивРеквизитовДопустимыхКИзменению.Добавить(«Комментарий»);

МассивРеквизитовДопустимыхКИзменению.Добавить(«АдресДоставки»);

//Добавленные реквизиты

Возврат МассивРеквизитовДопустимыхКИзменению;

КонецФункции

В модуле ОбщегоНазначения пишем функции общие для всех документов.

// сравниваем реквизиты документа из базы данных с записываемым объектом

// имена изменённых реквизитов запихываем в массив

Функция ПолучитьСписокИзменённыхРеквизитов(ДокОбъект) Экспорт

СписокИзменённыхРеквизитов = Новый Массив;

Ссылка = ДокОбъект.Ссылка;

мдОбъекта = ДокОбъект.Метаданные();

// сравниваем стандартные реквизиты

Для Каждого Реквизит из мдОбъекта.СтандартныеРеквизиты Цикл

Если ДокОбъект[Реквизит.Имя] <> Ссылка[Реквизит.Имя] Тогда

СписокИзменённыхРеквизитов.Добавить(Реквизит.Имя);

КонецЕсли;

КонецЦикла;

В модуле документа ПредЗаписью разрешаем запись без пререпроведения в случае, если были изменены только реквизиты, не вызывающие перепроведение.

РедактированиеЗаднимЧислом = Ложь;

МассивРеквизитовДопустимыхКИзменению = Документы.РеализацияТоваровУслуг.ПолучитьМассивРеквизитовИзменяемыхБезПерепроведения();

СписокИзменённыхРеквизитов = ОбщегоНазначения.ПолучитьСписокИзменённыхРеквизитов(ЭтотОбъект);

СписокИзменённыхРеквизитовВызывающихПерепроведение = ОбщегоНазначения.МожноЗаписыватьБезПерепроведения(ЭтотОбъект, МассивРеквизитовДопустимыхКИзменению, СписокИзменённыхРеквизитов);

Если СписокИзменённыхРеквизитовВызывающихПерепроведение = «» И Проведен И СписокИзменённыхРеквизитов.Количество() > 0 Тогда

РежимЗаписи = РежимЗаписиДокумента.Запись;

ИначеЕсли НЕ РедактированиеЗаднимЧислом и Дата < НачалоДня(ТекущаяДата()) И Не РольДоступна(«ПравоАдминистрирования») Тогда

Сообщить(«Недостаточно прав для проведения реализации « + Номер + » « + Строка(Дата) +

» задним числом. Изменены реквизиты: « + СписокИзменённыхРеквизитовВызывающихПерепроведение);

Отказ = Истина;

КонецЕсли;

 

Оцените статью:

Загрузка…

Если Вы заметили ошибку, то выделите ее мышью и нажмите Ctrl+Enter

  • 7 г. назад

    Есть проведенные документы. ВводНачальныхОстатков.
    После переноса нужно изменить префикс номера. Есть ли какой-то метод изменения, чтобы документ не перепроводился при записи?

  • (1) Если док проведенный, будет перепроведен

  • (2) СП почитать не предлагать?

  • (3) скажешь тоже… Его ещё купить надо

  • (3) Блин, хотел без этого обойтись. но придется

  • Прочитал. Ничего не нашел по сабжу.

    Записать(<РежимЗаписи>, <РежимПроведения>)
    Параметры:

    <РежимЗаписи> (необязательный)

    Тип: РежимЗаписиДокумента.
    Позволяет выбрать один из возможных режимов записи.
    Значение по умолчанию: Запись.
    <РежимПроведения> (необязательный)

    Тип: РежимПроведенияДокумента.
    Позволяет выбрать один из возможных режимов проведения.
    Значение по умолчанию: Неоперативный.
    Описание:

    Записывает документ в базу данных.

  • (6) если режим запись — то перепроведения не будет

  • tsr Записать(<РежимЗаписи>

    ну, вот же

  • Док.ОбменДанными.Загрузка = Истина;
    Док.Записать();
    
  • (9) если в модуле есть проверка =)

  • (10) ну, в типовых есть, вроде

  • (9) Сенкс. В принципе можно было и самому проверить. Но тематических веток практически нет. Хоть так форум поддержать

  • да и про сиськи не особо много

  • Программная корректировка движений документа

    В некоторых типовых конфигурациях фирмы 1С существует возможность ручной корректировки движений документа по регистрам. В конфигурации 1С: Бухгалтерия 8 для этого, при наличии соответствующих прав, нужно открыть движения документа и установить флаг “Ручная корректировка”. Однако, иногда возникает необходимость выполнить корректировку движений большого количества документов. В этом случае нам понадобится обработка, которая изменит движения документов без перепроведения.

    Рассмотрим как изменить движения документа на примере конфигурации 1С: Бухгалтерия 8. Менять будем движения по регистру бухгалтерии “Хозрасчетный”. Пусть  перед нами стоит задача заполнить суммы налогового учета по данным бухгалтерского. Предположим, что у нас уже есть обработка, которая  выбирает необходимые нам документы и последовательно обрабатывает их с помощью описанной нами процедуры “ИзменитьДвиженияДокумента”. Посмотрим как должна выглядеть эта процедура.

    Код

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

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

    Хотелось бы отметить, что без проверки ведения налогового учета на счёте, при попытке записать набор, содержащий проводку с ненулевой суммой по счёту на котором не ведется налоговый учет, возникнет ошибка следующего содержания:

    Запись не верна! Поле “Сумма (налоговый учет)” должно быть пустым! (Регистр бухгалтерии: Журнал проводок (бухгалтерский и налоговый учет); Номер строки: 1)

    Режим обмена данными устанавливается следующими строками:

    ...
    НаборЗаписей.ОбменДанными.Загрузка = Истина;
    ...
    ДокументОбъект.ОбменДанными.Загрузка = Истина;
    ...

    Это необходимо для того, чтобы не выполнялся программный код, находящийся в обработчиках событий “ПередЗаписью” модуля набора записей регистра бухгалтерии “Хозрасчетный” и модуля корректируемого документа. В каждом из них (для типовых конфигураций) есть проверка следующего вида:

    Если ОбменДанными.Загрузка Тогда
        Возврат;
    КонецЕсли;

    Признак ручной корректировки документа (ДокументОбъект.РучнаяКорректировка = Истина) необходимо устанавливать для того, чтобы изменения сохранились при повторном проведении документа. При проведении такого документа в конфигурации 1С:Бухгалтерия 8 выдается следующее сообщение:

    Движения документа отредактированы вручную и не могут быть автоматически актуализированы

    Статья найдена на просторах интернета

    Не реклама копирует жизнь, а жизнь копирует рекламу.

    Понравилась статья? Поделить с друзьями:
  • Зао чукотская горно геологическая компания вакансии
  • Изюмская 59 пенсионный фонд часы работы как доехать
  • Западно сибирский банк пао сбербанк реквизиты банка
  • Ил 2 штурмовик битва за сталинград скачать компании
  • Имеет ли право транспортная компания вскрывать груз