Вход | Регистрация


1С:Предприятие ::

Метки:Объекты конфигурации

Как прочитать удаленные елементы?

Я
   kopyl
 
12.07.04 - 13:09
Как прочитать программно, удаленные елементы,
не те которые удалили, и в 1С их видно как "помеченные на удаленные",
а те которые удалили и их видно в DBF, с пометкой (точка или звездочка)"удаленные",
так чтобы не обращаться к DBF через XBase.
(Понятно, что этого не видно после упаковки базы)
 
  Рекламное место пустует
   Crew
 
1 - 12.07.04 - 13:13
Никак.
   kopyl
 
2 - 12.07.04 - 13:14
Супер ответ ;-)
   kopyl
 
3 - 12.07.04 - 13:17
Хорошо, как тогда программно определить
какой dbf в базе отвечает, например справочнику товаров
   Crew
 
4 - 12.07.04 - 13:19
(2)
"На любые вопросы даем любые ответы" (с) Армянское радио

Какой вопрос - такой ответ.
   NiGMa
 
5 - 12.07.04 - 13:19
Зато абсолютно верный!

С точки зрения движка это уже пустое место в файле - он его как хочет, так и занимает, но никак не отображает.

Так что только через XBase, и для начала желательно файл скопировать - не ровен час, кто-нибудь как раз это место и затрет...
   Crew
 
6 - 12.07.04 - 13:20
(3)
;) Парсить структуру md-файла
   NastyFrog
 
7 - 12.07.04 - 13:20
(3)в dd найти
   kopyl
 
8 - 12.07.04 - 13:25
Ой, ой
а структуру md-файла
чем парсить?
я заглянул туда нотпадом, это совсем не читабельно...
   Crew
 
9 - 12.07.04 - 13:25
(6)
Сорри очепятался md - читать dd
   NastyFrog
 
10 - 12.07.04 - 13:26
Кусок из dd
#===============================================================================
#==TABLE no 42     : Справочник Номенклатура
# Name    |Descr                         |SQLTableNam|RecordLock
T=SC84    |Справочник Номенклатура       |SC84       |R
 
  Рекламное место пустует
   kopyl
 
11 - 12.07.04 - 13:28
dd не удобно разбирать, текст какойто не "форматированный"

Блин, штобы просто просмотреть удален ли елемент нужно и dd и md разковырять а попроще ничего нету?
   Crew
 
12 - 12.07.04 - 13:30
(11)
из (10) T=SC84
sc84.dbf - это и есть справочник Номенклатура
   Crew
 
13 - 12.07.04 - 13:31
Вообще зачем это нужно????
   skunk
 
14 - 12.07.04 - 13:34
я случайно удалил файл... на корзинке стояла галочка уничтожать файлы сразу после удаления... и как теперь его "программно" восстановить, а то всякими дискэдитами пользоваться не удобесно...
   Vovan Sidorovich
 
15 - 12.07.04 - 13:41
(9) Ты не "очепятался"
Есть взможност из 1ц просмотреть удаленные записи.
Да и обработка вроде была на хиппо.
   kopyl
 
16 - 12.07.04 - 13:47
(13)
Ну клепаю "обмен данными между базами"
а одна из ситуаций, это когда:
- создают елемент в одной базе
- рассылают его "всем"
- удаляют у себя
вот и нужно разослать "всем" что елемент такой-то был удален,
мол просмотрите базы у себя, если он не задействован, то удалите...
   kopyl
 
17 - 12.07.04 - 13:50
(12)
а есть какой-то стандартный разковыряльщик (парсер) для dd
чтобы самому не выдумывать велосипед ?
может у кого-то красивая функция уже есть готова?
   Crew
 
18 - 12.07.04 - 13:53
(15)
Да нет я как раз "очепятался".
А вот Вы невнимательно прочитали (0) и все последующие сообщения.
   427
 
19 - 12.07.04 - 13:57
to (0) нифига у тя не выйдет....
Хоть запарся ДД....

ибо в 1С дбф имеют отличия.... и это отличие - пометка удаления - это поле из структуры ДБФ... А удаленная запись - это в структуре ДБФ файла... И после удаления помеченных - БОЛТ.... БОЛЬШОЙ и ТОЛСТЫЙ - эти записи повторно уходят в работу...

А на обычном фоксе - НЕТ... и там возможно поднятие, а в 1С - только тех, которые еще не переписаны...


Так что брось эту идею...

Кстати Алл.... Можно не парсить ДД для документов и справочников.... А просто стпросить 1С ....
   kopyl
 
20 - 12.07.04 - 14:02
Ладно,
помоему проще создать документ,
"список удаленных элементов"
и поставить в обработчик удаления процедуру
которая добавит строку в такой документ, что мол то-то и то-то было удалено....
   kopyl
 
21 - 12.07.04 - 14:04
(19)
"Можно не парсить ДД для документов и справочников.... А просто стпросить 1С .... "
Как? (подскажи синтаксис...)
   Vovan Sidorovich
 
22 - 12.07.04 - 14:07
(18) Может для Вас будет новостью, что дд и ддс - уренанные производные от мд?
   skunk
 
23 - 12.07.04 - 14:08
(21)кто ищет тот всегда найдет... юзай поиск... тут не раз говорилось и показывалось
   427
 
24 - 12.07.04 - 14:08
(20) а простите, накуа такой документ? Если есть вызов

НайтиПомеченныеНаУдаление(<?>);
Синтаксис:
НайтиПомеченныеНаУдаление(<Объекты>)
Назначение:
Находит все помеченные на удаление объекты.
Параметры:
<Объекты> - идентификатор объекта типа ''СписокЗначений'', в который данная процедура помещает найденные объекты.
   Vovan Sidorovich
 
25 - 12.07.04 - 14:09
А вообще для текущей задачи ни дд ни мд не нужен
Есть функция ЗначениеВСтрокуВнутр() и объект XBase. Остальное - дело творчетсва
   kopyl
 
26 - 12.07.04 - 14:12
Дык со временем в базе могут и "Удаление помеченных объектов" совершить
а документ всегда хранить информацию будет...
   Crew
 
27 - 12.07.04 - 14:15
(22)
Нет не будет, а парсить файл(md) размером в 20 раз больше чем dd имхо неправильно.

(25)
Читайте (0): "так чтобы не обращаться к DBF через XBase."
   Vovan Sidorovich
 
28 - 12.07.04 - 14:16
(26) Зачем этот документ, если дбф сохраняет помеченные на удаление, пока его не упакуешь?
   kopyl
 
29 - 12.07.04 - 14:31
(28)
Это конэшно тоже способ, доставать информацию о удаленных элементахиз дбф,
только, как сказано выше,
эти записи в дбф не просто помечаются на удаление, но и портятся (затираются)
(правдя я еще не проверял)
   Crew
 
30 - 12.07.04 - 14:39
(19)
Можно не парсить ДД для документов и справочников.... А просто стпросить 1С ....

Имелось в виду:
НайтиПомеченныеНаУдаление(<?>);

Или нет?
   Valery
 
31 - 12.07.04 - 14:46
kopyl ты точно уверен, что Xbase откроет тебе 1C dbf. Xbase работает не со всеми форматами dbf.
   427
 
32 - 12.07.04 - 15:30
(31) свои дбф xBase точно открывает.... Причем во время работы можно нагло открывать файлы самой базы..... только это опять таки не спасает - имена колонок там - отличаются от колонок в доке и т.д.... т.е. проблема парсить справочники и доки....

А вообще
"Ну клепаю "обмен данными между базами"

с такими подходами точно не взлетит... более того, обнется так, что баз не соберешь....

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


Неверный принцип построения...
Непродумано вообще все....
   Valery
 
33 - 12.07.04 - 15:42
Не взлетит. Больно мудрено. Почему нельзя это сделать на уровне пометки. Типа впоследствии можно восстановить, а после удаления точно не восстановят, но посмотреть еще можно. Мыслит интересно. Точно знаю, лезть в структуру, больше гемороя найдешь.
 
  Рекламное место пустует
   kopyl
 
34 - 12.07.04 - 17:26
Взлетит- не взлетит.
Летать то тоже надо начинать - - с чего-то
А по поводу (32)
-----------------------
- создали в одной базе, перенесли в другую
- в базе источнике - поменяли наименование и код...
-----------------------
Так для этого GUID существует,
переименовуй, меняй ID, переноси в другой уровень иерархии - все равно найдем...
А вот удаление елемента, для 1С-ки болезненно сказывается на "репликации"

Просто я работал до 1С с другими прогами, там было продумано,
Удаление из зоны видимости программы, на самом деле не удаление из базы данных, а всего-лишь скрытие "з глаз долой"
по поводу
-------------
... более того, обнется так, что баз не соберешь....
-------------
упадет, если открывать в режиме экслюзивном, или для записи
а если в режиме только для чтения, то я думаю ему фиолетово(хотя проверить надо)

А по поводу (33)
----------------
Точно знаю, лезть в структуру, больше гемороя найдешь.
-----------------
Так гемор для тех, кто с DBF никогда не работал...
А мне пришшшшлось с ними на "ты" знакомится.
   Валентин
 
35 - 12.07.04 - 18:04
Если не является обязательным требованием отсутствие внешних компонент, то в 1С++ есть объект MetaDataWork. Умеет возвращать имена полей таблицы и имена таблиц по их названию в 1С. В перечислениям это не относиться.
   427
 
36 - 12.07.04 - 18:15
"С глаз долой" - в 1С не получится....

Что такое ссылочная целостность - понятие имеешь?

Посмотри идеологию МОД (менеджер обмена данными) от ПБ.... www.pb.ru - по моему, как то так...
   kopyl
 
37 - 12.07.04 - 20:14
(35)
Можно поподробнее "про это"
-----
в 1С++ есть объект MetaDataWork.
-----
где-то прочитать?
   Asmody
 
38 - 12.07.04 - 21:12



Список тем форума
Рекламное место пустует   Рекламное место пустует
Здесь можно задать вопрос "Как сделать?" и получить кучу ответов, что тебе это делать не надо. Ymryn
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует