Имя: Пароль:
1C
1С v8
Перепроводить документы в 1с
,
0 KonstantinK90
 
11.02.14
18:12
Здравстуйте! Подскажите как мне правильней поступить в этом случае.
У меня база 8.2 Бухгалтерия ко мне сегодня бухгалтер подходит и говорит хочу распечатать печатную форму документа "Списание ТМЗ " ЗА прошлые месяца а программа мне говорит "Документ изменен Записать и провести" можно ли проводить документы. И почему так хотя если поглядеть проводки по этому документу проводки есть. Что мне делать поскажите
1 МихаилМ
 
11.02.14
18:15
не проводить.
без крайней надобности перепроведение - зло.
2 Wobland
 
11.02.14
18:16
что, чьи-то криворукие руки научили документ меняться при открытии?
3 vicof
 
11.02.14
18:16
(0) у кого-то кривые ручки, раз программа так говорит
4 vicof
 
11.02.14
18:17
(2) влез тут, понимаешь ли
5 Wobland
 
11.02.14
18:17
(4) не влез, а опередил :-Р
6 timurhv
 
11.02.14
18:18
(0) отловить момент перед и при открытии по строчкам, проверять модифицированность.
(2),(3) Это руки кривые у 1С, сталкивался уже с таким.
7 KonstantinK90
 
11.02.14
18:19
вот ия про это и самое характерное не со всеми документами так
и почему так произошло и что теперь делать если вы говорите перепроводи документы это зло???????????
8 Wobland
 
11.02.14
18:19
(6) та ну? пример в типовой покажешь?
9 timurhv
 
11.02.14
18:20
(8) точно помню в БГУ каком-то релизе при открытии списания материальных запасов, если найду - скину пример.
10 Wobland
 
11.02.14
18:20
(9) ну то есть, какой-то одиночный баг
11 timurhv
 
11.02.14
18:21
(10) я таких "одиночных багов" уже задолбался выправлять.
12 KonstantinK90
 
11.02.14
18:25
ну все понятно в общем. А перепроводить категорически запрещается?
13 vicof
 
11.02.14
18:25
(12) Да, вообще никогда проводить нельзя.
14 timurhv
 
11.02.14
18:26
(8)
Процедура ПриОткрытии()
...
Если ЭтоНовый() Тогда
...
Иначе
мТаблицаХО = РаботаСВидамиОпераций.СформироватьТаблицуХО(ВидОперации);
        РаботаСДиалогами.УстановитьПараметрыСубконтоПоСчетуВШапке(ДокументОбъект, ЭтаФорма, СчетДебета, "СубконтоСчетДебета", "НадписьСубконтоСчетДебета",,,Ложь);
//((ХТВ
        // Иначе невозможно печатать документы в закрытом периоде.
        ЭтаФорма.Модифицированность = Ложь;
        //ХТВ))
КонецЕсли;
15 timurhv
 
11.02.14
18:29
(14) Кстати, поправили уже с помощью последнего параметра в процедуре "УстановитьПараметрыСубконтоПоСчетуВШапке".
16 Wobland
 
11.02.14
18:32
(14) несколько не видна модифицируемость документа
17 timurhv
 
11.02.14
18:35
(16)

Было раньше:

ТипСубконто = ТекСчет.ВидыСубконто[Сч-1].ВидСубконто.ТипЗначения;
...
Если ТипСубконто.ПривестиЗначение(ЭлементыФормы[ИмяРеквизитаСубконто].Значение) <> ЭлементыФормы[ИмяРеквизитаСубконто].Значение Тогда
            ЭлементыФормы[ИмяРеквизитаСубконто].Значение = ТипСубконто.ПривестиЗначение(ЭлементыФормы[ИмяРеквизитаСубконто].Значение);
        КонецЕсли;

стало:

Если УстанавливатьТипСубконто Тогда
            Если ТипСубконто.ПривестиЗначение(ЭлементыФормы[ИмяРеквизитаСубконто].Значение) <> ЭлементыФормы[ИмяРеквизитаСубконто].Значение Тогда
                ЭлементыФормы[ИмяРеквизитаСубконто].Значение = ТипСубконто.ПривестиЗначение(ЭлементыФормы[ИмяРеквизитаСубконто].Значение);
            КонецЕсли;
        КонецЕсли;


"УстанавливатьТипСубконто" - последний параметр в вызываемой процедуре.
18 Wobland
 
11.02.14
18:39
(17) ну мало ли что там в элементах формы меняется ;) хотя, с таким исправлением есть очень мощная уверенность в модификации данных, да ;)
19 timurhv
 
11.02.14
18:45
(18) последнюю фразу не очень понял про уверенность в модификации!
20 Wobland
 
11.02.14
18:47
(19) перефразирую. да, я верю тебе в том, что изменение данных документа при открытии его формы имеет место быть в типовых. даже несмотря на то, что приведённый код явно об этом не свидетельствует
21 timurhv
 
11.02.14
18:53
(20) Данные не изменялись, фактически. Но приведение хз почему криво отрабатывается и на выходе получаем модифицированность формы у документов в закрытом периоде и с последующей невозможностью вывода печатных форм.
22 Wobland
 
11.02.14
18:57
не полезу проверять, но вроде как во всяких процедурах печати используется конструкция "Если ЭтотОбъект.Модифицированность". объект, а не форма
23 Wobland
 
11.02.14
18:58
(22) ну и всё это дело в модуле объекта или менеджера
24 Wobland
 
11.02.14
19:02
открыл для себя манчкин, раньше утра не ждите ;)
25 timurhv
 
11.02.14
19:02
(22) классно вам:

Функция ПроверитьМодифицированностьВФорме(Объект, Форма) Экспорт

Если Форма.Модифицированность Тогда

        Ответ = Вопрос("Объект изменен. Для печати его необходимо записать "+ СтрПроведен +".
...
КонецЕсли;
26 vicof
 
11.02.14
20:07
(24) с кем играешь?
Основная теорема систематики: Новые системы плодят новые проблемы.