Имя: Пароль:
1C
1С v8
Измерения регистра накопления
0 trv5
 
09.10.13
18:02
Уточню сразу, база досталась в наследство от другого программера...

Этот нехороший человек решил использовать в регистре накопления (реквизит "ЕдиницаИзмерения"), в измерении составной тип данных, который состоит из типов "строка (длина 150 переменная)" и типа "справочник.Единицыизмерения.ссылка".
В результате естественно в остатках регистра есть записи у которых идентичные строковые значения реквизита "ЕдиницаИзмерения", при этом запрос выдает остатки двумя строками.
То есть, получается 2 одинаковых строки.

При попытке "закрыть" остатки по регистру документом Корриктировка движений (просто заполняем - он делает записи в регистр, никаких расчетов) происходит следующее:
1. Естественно ничего не закрывается.
2. Самое интересное. При выполнении запроса на любую!!!! дату (и даже на 01.01.0001 0:00:01) в регистре появляются остатки!!!! для данных измерений!!!!

Какие будут мысли?
1 bugz2003
 
09.10.13
18:06
2.пересчет итогов сделай
2 Fragster
 
модератор
09.10.13
18:06
база файловая? ТиИ не пробовали?
3 trv5
 
09.10.13
18:07
(1) делал, и тестирование полное делал... не помогает..
Провел документ Корриктировка движений  - остатки на непонятно когда появились, отменил проведение - пропали...
4 Rie
 
09.10.13
18:08
(3) Ну так и смотри, что за косяк в этом документе.
5 trv5
 
09.10.13
18:16
(2) и в файловой и в SQL ситуация одинаковая
6 trv5
 
09.10.13
18:16
(4) косяка в документе нет.
Там все просто, РУКАМИ выбираем нужные измерения, нажимаем провести, делаем запись в регистр
7 Enders
 
09.10.13
18:31
(6) ну посмотри, какие движения он сделал в регистре.
(0) после закрытия остатков, этот РН больше не будет использоваться?
8 trv5
 
09.10.13
18:35
(7) сделано одно движение, период 31.12.2012 23:59:59, заполнены измерения, суммы, вид движения "расход". ВСЕ, больше никаких движений нет.
А запрос выдает что есть остатки по этим измерениям на любую дату...
9 Rie
 
09.10.13
18:41
(8) На какую "любую"?
10 trv5
 
09.10.13
18:42
(9) читай (0)

2. Самое интересное. При выполнении запроса на любую!!!! дату (и даже на 01.01.0001 0:00:01) в регистре появляются остатки!!!! для данных измерений!!!!
11 Enders
 
09.10.13
18:43
(8)а сам запрос то правильный?)
Посмотрите какой регистратор у тех остатков)
12 Rie
 
09.10.13
18:43
(10) Запрос покажи.
13 trv5
 
09.10.13
18:44
(12) ВЫБРАТЬ
    РасшифровкаЗатратОстаткиИОбороты.СчетЗатрат,
    РасшифровкаЗатратОстаткиИОбороты.Субконто1,
    РасшифровкаЗатратОстаткиИОбороты.Субконто2,
    РасшифровкаЗатратОстаткиИОбороты.Субконто3,
    РасшифровкаЗатратОстаткиИОбороты.Номенклатура,
    РасшифровкаЗатратОстаткиИОбороты.Ед,
    РасшифровкаЗатратОстаткиИОбороты.КоличествоНачальныйОстаток,
    РасшифровкаЗатратОстаткиИОбороты.КоличествоКонечныйОстаток,
    РасшифровкаЗатратОстаткиИОбороты.СуммаНачальныйОстаток,
    РасшифровкаЗатратОстаткиИОбороты.СуммаКонечныйОстаток
ИЗ
    РегистрНакопления.РасшифровкаЗатрат.ОстаткиИОбороты(&НачДата, &НачДата, , , ) КАК РасшифровкаЗатратОстаткиИОбороты

НачДата= 01.01.0001  0:00:01

Через консоль запросов строится...
14 Rie
 
09.10.13
18:49
(13) А на _другую_ дату - что выдаёт?
15 trv5
 
09.10.13
18:52
(14) вплоть до даты 31.12.2009 ТОЖЕ САМОЕ
в 2010 году работать начали в базе, данные естественно начинают меняться
16 Enders
 
09.10.13
18:52
(13)Выбери периодичность "регистратор" и вытащи его в запрос.
Увидишь какой документ сделал эти движения.
17 Rie
 
09.10.13
18:54
(15) Чудес не бывает. Загляни в регистр - есть ли там записи до 31.12.2009.
18 trv5
 
09.10.13
18:55
(16) делал, поле регистратор ПУСТОЕ
19 trv5
 
09.10.13
18:56
(17) первым делом заглядывал... еще днем... НЕТУ
20 trv5
 
09.10.13
18:57
Нужно убегать.... смогу ответить завтра...
21 trv5
 
10.10.13
11:35
проблема так и не решена ((((
Может еще у кого будут мысли???
22 Fragster
 
модератор
10.10.13
11:39
ну так убери все "строки" в имеющихся движениях (без корректировки) и после этого сделай тип несоставным, что
23 trv5
 
10.10.13
11:54
(22) проблема в том, что убрать все строки нельзя...

На основании данного регистра считается себестоимость продукции, а цикл производства больше года.
Проблема в том, что в регистре некорректно закрыты года 2010 - 2012.
Вот я и пытаюсь их "почистить" чтобы можно было нормально работать на данный момент.
Причем проблема возникает ТОЛЬКО при ситуации когда в измерении "ЕдиницаИзмерения" кто-то додумался (ну или случайно получилось) вбить единицы "Запчасти" и "Запчасти " (все типа строка), при этом значение остальных измерений идентичны.
В любом другом случае (там 10-ки тысяч строк) все закрывается без проблем.
А вот если сделать движение по данному набору измерений, и не важно по "Запчасти" или "Запчасти ", начинается бред.

Мало того, что ничего не закрывается, так и еще остатки (при выполнении запроса через консоль) появляются НА ЛЮБУЮ дату!!! При этом если построить запрос на дату 01.01.0001 0:00:01, то есть уже остатки на начало дня!!!!
А запрос с параметров в виде дата начала пустая не выполняется..

Я уже думаю.... может глюк в платформе....
24 Fragster
 
модератор
10.10.13
11:56
(23) почему нельзя-то? ну создай недостающие элементы справочников....
25 trv5
 
10.10.13
11:59
(24) хорошо, какой план действий должен быть приблизительно?
26 Fragster
 
модератор
10.10.13
12:06
(25)
создать новый регистр с правильной структурой
перенести все данные в него (создав необходимые элементы справочников)
переименовать старый и новый регистры
грохнуть старый регистр
27 trv5
 
10.10.13
12:09
(26) а что делать с документами? отчетами и тд?
28 Fragster
 
модератор
10.10.13
12:10
(27) поскольку новый регистр будет иметь такую же структуру и имя, как и старый - ничего не надо переделывать (ну, конечно, если вы перестали туда писать строки)
29 trv5
 
10.10.13
12:12
(28) а со строками что делать то? заменить на новый справочник куда их добавить?
Да и документы и отчеты об этом изменении не знают...
Надо будет переделать все документы, как-то заменив в них реквизиты, и при этом чтобы ничего не порушить в остатках..

я правильно понимаю?
30 trv5
 
10.10.13
12:13
(28) да и это не ответ на вопрос почему 1С так себя ведет?
31 Fragster
 
модератор
10.10.13
12:15
(29) строки заменить на элементы справочника единицы измерения.

ничего переделывать, если вы убрали запись "строк" в это измерение не надо
32 Fragster
 
модератор
10.10.13
12:16
(30) выбрав из реальной таблицы записи и проанализироваав их - можно понять. Ну и есть еще в файловых базах нюансы со строками фиксированной и нефиксированной длины - плохо сворачиваются они.
33 trv5
 
10.10.13
12:22
(31) боюсь что бухгалтерии это не понравится мягко говоря...
Там чувак сделал чтобы велся учет в разрезе фактически примечаний (не знаю зачем!!!!) и там их скорее всего тысячи..
Мне проще свернуть все кроме этих "Запчасти", чем портить справочник единицы измерения.

На базе SQL работает так же, проверял лично.
34 trv5
 
10.10.13
13:01
(32) Жаль тут картинки вставлять нельзя. На инфостате тоже общаюсь, там скрин выложил где все четко видно..