Имя: Пароль:
1C
1C 7.7
v7: Откуда в справочнике Лишние элементы и что с ними делать
0 tmpnikl
 
15.01.13
09:45
открыл справочник(формат DBF, поэтому не в 1С) ввел команду..
SELECT sp63 FROM xx GROUP BY 1, поле SP63 это перечисление, показало 10 записей, хотя в конфигураторе этого перечисления 9, установил фильтр этого перечисления на 0, поле ISFOLDER почему равно 2, хотя должно быть или 1 или 0, но всё равно это элементы справочника, а не группы, как такое могло произойти(не заполниться код перечисления) и что делать с этими записями...
1 cw014
 
15.01.13
09:48
Бррр, вообще нифига не понял
1) показало 10 записей, хотя в конфигураторе этого перечисления 9 - и что? А справочников 10 так что нормально
2) как такое могло произойти(не заполниться код перечисления) - при пустом значении реквизита пустое поле, что тут не так?
2 Boroda
 
15.01.13
09:49
Возможно 2 элемента справочника имеют одно и то же значение перечисления. :)
3 Boroda
 
15.01.13
09:54
Не знаю как в DBF, но в SQL ISFOLDER имеет значения 1 или 2.
4 tmpnikl
 
15.01.13
09:54
Нет справочник один, в нём есть поле, куда заносится код перечисления, которого 9 значений, но на самом деле в справочнике этих значений 10(сделана при выборке группировка), и записи поля с кодом этого перечисления=0, не являются группой...
5 tmpnikl
 
15.01.13
09:56
ISFOLDER
[BIT] Флаг определяющий - является ли элемент группой, или нет. 0 это элемент - 1 это группа.( http://web-team.narod.ru/art_005.html)
6 tmpnikl
 
15.01.13
09:56
тем более, что у меня файл-серверный вариант.. не SQL
7 tmpnikl
 
15.01.13
09:59
да без разницы, у этих записей поле ISFOLDER=2, т.е. всё равно элемент, а не группа
8 Ёпрст
 
15.01.13
09:59
(5) Ошибаешься
Для групп это поле равно 1, для элементов - 2.
и формат базы тут не имеет значения
9 КонецЦикла
 
15.01.13
10:01
(0 Ищи '     0   '
10 Ёпрст
 
15.01.13
10:02
а у тебя - просто пустое значение перечисления в поле и привет, т.е (9)
11 Boroda
 
15.01.13
10:06
Сделай Select по всем полям этого справочника с выводом в тз и увидишь что к чему. Записей то всего 10 :)
Запрос.ВыполнитьИнструкцию(ТекстЗапроса,тз);      
тз.Показать();
12 cw014
 
15.01.13
10:09
Походу ТП думает, что если перечислений 9 штук, то и элементов  в справочнике должно быть 9 штук
13 cw014
 
15.01.13
10:10
(0)GROUP BY 1 - это ты так группировку сделал?
14 tmpnikl
 
15.01.13
10:17
Да, так можно делать группировку..
я сделал SET FILTER TO AT("0",sp63)>0 в таблице справочники, и оно показало 57 штук этих записей в таблице с кодом перечисления=0(и эти записи не являются группой...(isfolder<>1)), и что с нми делать я не знаю...
15 Boroda
 
15.01.13
10:18
(13) Повезло что элемент с пустым значением оказался! А то получил бы 9 записей (как и предполагал) и ТС продолжал бы  искать ошибку в другом месте. :)
16 cw014
 
15.01.13
10:19
(14) Ну коль не знаешь, тогда ничего не делай
17 ЧеловекДуши
 
15.01.13
10:22
Лишний походу только автор...
И вообще откуда в БД всегда появляются лишние справочники, документы, пользователи и другие волшебные метаданные :)
18 cw014
 
15.01.13
10:25
(17) Так самое лишнее в конфигурации - ветка, под названием "конфигурация"
19 Ёпрст
 
15.01.13
10:28
(14) Ничего не делать.
Для начала, не стоить лазить в таблички, не ознакомившись со структурой хранения.
20 Ёпрст
 
15.01.13
10:29
а так, в реквизит не заполнен в справочнике и привет.
21 tmpnikl
 
15.01.13
10:32
Код перечисления я этим записям(у которых нет этого кода(пустой)) проставлю через 1С, вопрос в другом, как могло это произойти, чтоб не допустить этого в будущем...
22 Boroda
 
15.01.13
10:33
(14) В 1С есть очень хорошая процедура:
НайтиСсылки(<Объекты>,<Ссылки>)
Раз уж получилось выбрать элементы создай из них список занчений, подсунь в эту процедуру и порсмотри ссылки.
Если ссылок нет, то можно и удалить их следующейтоже очень удобной процедурой:
УдалитьОбъекты(<Объекты>,<Проверять>,<Ссылки>)
Но все это делать после того как сказано в (19)
23 Ёпрст
 
15.01.13
10:35
(21) Болеешь ?
Тупо в справочнике не заполнили реквизит и всё.
Нахрена ты вообще в таблички полез ?
24 cw014
 
15.01.13
10:44
(23) Я так думаю у ТП мало проблем, вот и пытается их себе создать
25 tmpnikl
 
15.01.13
10:49
я в этих таблицах ничего не менял, и что.. просматривать DBF файлы запрещено что ли.. В отчёте не выводятся записи с определённым кодом перечисления, в 1с есть наверное свои методики разбора ситуации, для меня легче открыть таблицу DBF каким-нибудь вьювером и вначале посмотреть есть ли записи с таким кодом...
Но это наверное разрешено только небожителям..:-)
26 cw014
 
15.01.13
10:50
(25) Ты определись, что ты вообще хочешь увидеть... Код перечисления - это у тебя что?
27 1Сергей
 
15.01.13
10:50
(25) иди в гинекологи лучше
28 Boroda
 
15.01.13
10:56
(21) Посмотри в журнале регистрации один из элементов справочника. Если там нет данных, то вероятнее всего, есть некая обработка по формированию документов или чего то еще, в котором реквизитом является этот справочник. Попробуй создать вручную еще один элемент справочника. Если ругается что не заполнено поле с перечислением, то однозначно создается где-то программно.
29 tmpnikl
 
15.01.13
10:58
Код перечисления это в конфигураторе уволен принят переведён и т.д., а в таблице 49, 49А и т.д., что тут нельзя наложить фильтр по полю SC63, и вначале посмотреть есть записи с кодом 49... или что этого нельзя делать?
30 cw014
 
15.01.13
11:01
(29) Что ты хочешь найти, определись...
31 tmpnikl
 
15.01.13
11:03
> иди в гинекологи лучше
Когда люди кичаться своими знаниями, умением, деньгами и т.д... мне бы не хотелось бы опускаться до этого...
Спасибо за информацию...
32 1Сергей
 
15.01.13
11:03
(31) просто ты идёшь по наиболее сложному пути
33 Boroda
 
15.01.13
11:07
(29) Прямыми запросами возможно все!  :)
Сперва нужно пределить что за перечисление с кодом 49. Например это "уволен". Тогда просто накладывай филтьр по данному условию, типа этого: "WHERE SP63 =:СостУволен", Ну а СостУволен определи через "УстановитьТекстовыйПараметр"
34 cw014
 
15.01.13
11:12
(31) Давай разберемся в ТЗ. У тебя отчет, в котором не выводятся некоторые элементы справочника, у которых определенный реквизит с типом "перечисление. Определи, какие именно элементы не выводятся, то есть какое значение перечисления не попадает в отчет. Судя по "воде", которую ты тут льешь - в отчет не попадают элементы, у которых не заполнен этот реквизит (то есть он пуст (С) КЭП). Теперь ты хочешь определить, как так получилось, что у этих элементов не заполнены значения? Тут два варианта, первый: если элементы создавались обработкой, тогда в обработке косяк, который не проставляет этот реквизит; второй: руками, тогда косяк в том, кто это заводил. Скорее всего ты найдешь этого человека, он скажет "а программа дала так ввести", тут ты и поймешь, что косяк еще в коде при записи элемента справочника... То есть во внутреннюю структуру лезть вообще не нужно... Все, телепатия кончилась на сегодня
35 tmpnikl
 
15.01.13
11:23
Да, мне надо разобраться в чём причина осутствия заисей в отчёте...(в 1С я ещё плохо ориентируюсь и поэтому пользуюсь VFP9) первое что увидел в таблице записи с 0(поэтому сразу возник вопрос), я их уже  удалил, чтоб не мещали разбираться дальше, теперь удаляю записи с кодом не равным 49(делаю reindex на всякий случай), т.е. остались записи которые должны попасть в отчёт, теперь иду в конфигуратор и разбираюсь с этой отработкой выясняю, почему не выводятся записи...может это по дурацкому, но конфа не моя и мне так понятней...
Спасибо...я уже близок к цели..:-)
36 Ёпрст
 
15.01.13
11:24
(35)
>>> я их уже  удалил,
п...ц

Накуя ?
37 Ёпрст
 
15.01.13
11:25
Ты уже близок к увольнению, это как минимум
38 cw014
 
15.01.13
11:25
(37) +1
(35) А ты экстремал, как я посмотрю
39 cw014
 
15.01.13
11:26
(35) + конечно, когда отчет в 1С не работает, первым делом лезем в DBF и удаляем там все, что бы не мешало разбираться
40 1Сергей
 
15.01.13
11:26
про бэкапы не говорили ещё?
41 Mikeware
 
15.01.13
11:26
(37) рано. еще надо заслужить вазелин...
42 Ёпрст
 
15.01.13
11:27
А ничего, что ты забил болт на ссылочную целостность ИБ, и теперь, если у некоторого объекта ИБ была ссылка на тот элемент справочника, который ты удалил - будет "битая" ссылка ?

Уволят тебя за такую самодеятельность.
Закрой свой дбф вьювер, верни всё как было и позови кого нибудь из взрослых.
43 tmpnikl
 
15.01.13
11:31
Я не делаю это на рабочих таблицах, это всё делается на отдельном диске выясняется ошибка. а потом исправляется в основной конф...
44 Mikeware
 
15.01.13
11:32
(43) Ошибка - она совершенно в другом месте...
45 Ёпрст
 
15.01.13
11:33
Можно еще попробовать угадать дату выпуска изделия - 86г.
46 kimba
 
15.01.13
12:05
(39) Я вообще все время так делаю, даже в 8ке :)
Закон Брукера: Даже маленькая практика стоит большой теории.