Имя: Пароль:
1C
1C 7.7
v7: УРИБД: как перебрать объекты для отправки?
0 Shved_72
 
17.01.17
08:54
поднял мохнатую литературу
http://i.imgur.com/T3z5JKL.jpg
неужто такого не было? как без этого жили?
есть же целая таблица вроде update, почему ее нельзя программно поиметь?
1 Cool_Profi
 
17.01.17
08:56
Почему нельзя?
select * from _1supd
2 Ёпрст
 
17.01.17
08:56
(0) у кого обе руки не левые, прекрасно всё достаёт и правит, прямым запросом.
3 Shved_72
 
17.01.17
08:59
так глубоко я еще не входил.
а что в таблице? uid сущности? как его вернуть в ссылку?
4 Ёпрст
 
17.01.17
09:03
Гугл - структура уриб  - фас-фас
5 Shved_72
 
17.01.17
09:04
6 Андрей_Андреич
 
naïve
17.01.17
09:05
"Программно поиметь"
"Так глубоко я еще не входил"
С таким слогом писать надо не на 1С, а монологи Петросяну.
7 Курцвейл
 
17.01.17
09:06
ЗначениеВФайл
8 Shved_72
 
17.01.17
09:09
спасибо. досвидания
9 Ёпрст
 
17.01.17
09:13
10 пипец
 
17.01.17
09:17
хмм обычно все таки сначала читают, потом пишут ))
11 Рэйв
 
17.01.17
09:21
Выборка = ПланыОбмена.ВыбратьИзменения(Узел,НомерПоследнегоСообщения+1);
    Сч=0;
    ОчиститьСообщения();
    Сообщить("<Ctrl + Break> для прерывания...");
    Пока Выборка.Следующий() Цикл
        Сч=Сч+1;
        ОбработкаПрерыванияПользователя();
        ОбъектВыгрузки = Выборка.Получить();
        Состояние("Объект "+Сч+"-> "+ОбъектВыгрузки);
    КонецЦикла;
12 Рэйв
 
17.01.17
09:21
ой, сторно..не узрел, что 7.7
:-)
13 Cool_Profi
 
17.01.17
09:25
(11) см (10) )))
14 Это_mike
 
17.01.17
09:26
(10) дык где мизда, а где "обычно". вон, (11) сначала пишет, а пао том читает
15 Рэйв
 
17.01.17
09:27
(14)У меня секция только в общем списке тем светится:-) А как зашел в тему - не видно
16 Это_mike
 
17.01.17
09:30
(15) дык неужто прочитал картинку а теме, и не понял? :-)
17 Cool_Profi
 
17.01.17
09:31
(16) "Шурик, это не наш метод!"
18 Это_mike
 
17.01.17
09:33
(17) а "наш" - это какой? "бить сильно, но аккуратно"©?
19 Рэйв
 
17.01.17
09:33
(16)А накой мне "мохнатая литература"?:-))
20 Cool_Profi
 
17.01.17
09:35
(18) "Пишите, ТС узнает своё!"
21 Shved_72
 
17.01.17
09:35
какой учеткой в мистатый каталог стучаться? от митсы не подходит от инфостата тоже. там надо третью регать?
http://catalog.mista.ru/public/14424/
22 Это_mike
 
17.01.17
09:36
(19) литература - это книжки такие. а совсем не  то, что ты подумал... то, что ты подумал - называется, гкхм, "горжетка"
23 Это_mike
 
17.01.17
09:36
(21) лезь на нимфостарте
24 Ёпрст
 
17.01.17
09:40
Смотреть на dat файлик, не очень удачная идея. Проще смотреть, что зарегистрировано в упдсе
25 Это_mike
 
17.01.17
09:41
(24) а кто советовал смотреть на dat?
26 Shved_72
 
17.01.17
09:43
самой выгрузки из 77 не будет.
мне надо штатно регать все что меняется и загружать в 8ку
27 Ёпрст
 
17.01.17
09:43
(25) ну, он же ссмотрит в (21)
28 Ёпрст
 
17.01.17
09:45
(26) МОД можно поставить, если уриб не осилишь с кд. Там есть штатный обмен со снеговиком.
29 Это_mike
 
17.01.17
09:45
(26) уфф. поищи по моему нику... я даже код давал...
30 Shved_72
 
17.01.17
09:46
(27) хотел выдернуть пару строк получения объекта по уид
31 Это_mike
 
17.01.17
09:47
(30) поставь 1с++
32 Ёпрст
 
17.01.17
09:47
(29) в (9) посленяя ссылка
33 Это_mike
 
17.01.17
09:49
(32) не, я про другое.
я давал код процедур как рз для обмена с снеговиком.
34 Это_mike
 
17.01.17
09:55
Нашел в заначке, но за версию не поручусь
//******************************************************************************

Процедура ИнициализацияСоответствийОбъектов() Экспорт
рс=СоздатьОбъект("ODBCRecordset");
            текстУдаленияТаблицыСоответствий="
            |
            |IF EXISTS(SELECT name FROM sysobjects WHERE name = 'СоответствияОбъектов' AND xtype='U')
            |
            |DROP TABLE [СоответствияОбъектов]
            |";
            рс.ВыполнитьСкалярный(текстУдаленияТаблицыСоответствий);
                
            текстСозданияТаблицыСоответствий="
            |
            |IF NOT EXISTS(SELECT name FROM sysobjects WHERE name = 'СоответствияОбъектов' AND xtype='U')
            |
            |CREATE TABLE [СоответствияОбъектов] (
            |    [ROW_ID] [int] IDENTITY (1, 1) NOT NULL ,
            |    [ТипОбъекта] [numeric](5, 0) NOT NULL ,
            |    [ТипОбъектаСтр] [char](35) COLLATE Cyrillic_General_CI_AS NOT NULL ,
            |    [ВидОбъектаСтр] [char] (45) COLLATE Cyrillic_General_CI_AS NOT NULL ,
            |    [ИмяТаблицы] [char] (10) COLLATE Cyrillic_General_CI_AS NOT NULL ,
            |    CONSTRAINT [СоответствияОбъектов_PK] PRIMARY KEY  CLUSTERED
            |    (
            |        [ROW_ID]
            |    )  ON [PRIMARY]
            |) ON [PRIMARY]
            |";
            рс.ВыполнитьСкалярный(текстСозданияТаблицыСоответствий);

            ТекстДобавленияОписания="
            |INSERT INTO СоответствияОбъектов   (СоответствияОбъектов.ТипОбъекта, СоответствияОбъектов.ТипОбъектаСтр,СоответствияОбъектов.ВидОбъектаСтр,СоответствияОбъектов.ИмяТаблицы)
            |    VALUES ( :ТипОбъекта,:ТипОбъектаСтр, :ВидОбъектаСтр,' ')
            |";            
            Для сч=1 По Метаданные.Документ() Цикл
                ИдентСтр=Метаданные.Документ(сч).Идентификатор;
                Идент=глMDW.ИДДокумента(сч);
                рс.УстановитьТекстовыйПараметр("ТипОбъекта",Идент);
                рс.УстановитьТекстовыйПараметр("ТипОбъектаСтр","Документ");
                рс.УстановитьТекстовыйПараметр("ВидОбъектаСтр", ИдентСтр);
                рс.ВыполнитьСкалярный(ТекстДобавленияОписания);
            КонецЦикла;
            Для сч=1 По Метаданные.Справочник() Цикл
                ИдентСтр=Метаданные.Справочник(сч).Идентификатор;
                Идент=глMDW.ИДСправочника(сч);
                рс.УстановитьТекстовыйПараметр("ТипОбъекта",Идент);
                рс.УстановитьТекстовыйПараметр("ТипОбъектаСтр","Справочник");
                рс.УстановитьТекстовыйПараметр("ВидОбъектаСтр", ИдентСтр);
                рс.ВыполнитьСкалярный(ТекстДобавленияОписания);
            КонецЦикла;
КонецПроцедуры
//******************************************************************************
        
Функция ВернутьИзмененныеДокументы(ИдБазы="1C8",ТипОбъектаСтр="",ВидОбъектаСтр="",ИдОбмена="") Экспорт
рс=СоздатьОбъект("ODBCRecordset");
    ТекстЗапроса="
    |select case when Соответствия.ТипОбъектаСтр='Документ' then 'O1' else 'B1' end + dbo.convert10to36(Соответствия.ТипОбъекта)+ Изменения.objid [Объект $Неопределенный]
    |from _1supdts Изменения (nolock)
    |inner join СоответствияОбъектов Соответствия (nolock) on Изменения.typeid= Соответствия.ТипОбъекта
    |where Изменения.dbsign=:ВыбИдБазы
    |";
    Если ПустаяСтрока(ТипОбъектаСтр)=0 Тогда
        ТекстЗапроса=ТекстЗапроса+"
        |and (Соответствия.ТипОбъектаСтр=:ВыбТипОбъектаСтр)";
    КонецЕсли;
    Если ПустаяСтрока(ВидОбъектаСтр)=0 Тогда
        ТекстЗапроса=ТекстЗапроса+"
        |and (Соответствия.ВидОбъектаСтр=:ВыбВидОбъектаСтр)";
    КонецЕсли;
    Если ИдОбмена<>"" Тогда
        ТекстЗапроса=ТекстЗапроса+"
        |and ((left(Изменения.DwnLdId,6) <= left(:ИдОбмена,6)) and (Изменения.DwnLdId<>''))";
    КонецЕсли;
рс.УстановитьТекстовыйПараметр("ВыбТипОбъектаСтр",ТипОбъектаСтр);    
рс.УстановитьТекстовыйПараметр("ВыбВидОбъектаСтр",ВидОбъектаСтр);
рс.УстановитьТекстовыйПараметр("ВыбИдБазы",ИдБазы);
рс.УстановитьТекстовыйПараметр("ИдОбмена",ИдОбмена);
ТЗОбъектов=рс.ВыполнитьИнструкцию(ТекстЗапроса);
Возврат ТЗОбъектов;
КонецФункции
//******************************************************************************
Функция ВернутьНовыйИдОбмена() Экспорт
    НовыйИд=ЗапросСКЛ.ВыполнитьСкалярный("select ltrim(dbo.convert10to36(max(dbo.convert36to10(left (dwnldid,6)))+1)+'CB ') from _1sdwnlds where direct='O'");
    Возврат НовыйИд;
КонецФункции
//******************************************************************************
Функция ПодготовиитьКВыгрузке(ИдБазы="1C8") Экспорт
    ТекстЗапроса="
    |set nocount on
    |declare @NewId Char(9)
    |declare @DBSign Char(9)
    |Set @DBSign=:ИдБазы
    |set @NewId=(select ltrim(dbo.convert10to36long(max(dbo.convert36to10(left (dwnldid,6)))+1)+'CB ') from _1sdwnlds where direct='O')
    |INSERT INTO [Base].[dbo].[_1SDWNLDS]([DWNLDID], [DBSIGN], [DIRECT], [ACKNOWL])
    |VALUES( @NewId, @DBSign, 'O', ' ')
    |UPDATE [Base].[dbo].[_1SUPDTS]
    |SET [DWNLDID]=@NewId
    |WHERE (DBSign=@DBSign) and (DWNLDID='')
    |--select * from _1supdts where dbsign='1C8'
    |Select @NewId
    |";
    ЗапросСКЛ.УстановитьТекстовыйПараметр("ИдБазы", ИдБазы);
    НовыйИд=ЗапросСКЛ.ВыполнитьСкалярный(ТекстЗапроса);
    Возврат НовыйИд;
КонецФункции
//******************************************************************************
Функция ПодтвердитьОбмен(ИдБазы="1C8", ИдВыгрузки="") Экспорт
    ТекстЗапроса="
    |set nocount on
    |declare @SelId Char(9)
    |declare @DBSign Char(9)
    |Set @DBSign=:ИдБазы
    |set @SelId=:ИдВыгрузки
    |go
    |UPDATE [Base].[dbo].[_1SDWNLDS]([DWNLDID], [DBSIGN], [DIRECT], [ACKNOWL])
    |SET [ACKNOWL]='A'
    |WHERE [DWNLDID]=@SelId and [DBSIGN]=@DBSign
    |go
    |DELETE [Base].[dbo].[_1SUPDTS]
    |WHERE (DBSign=@DBSign)
    |and (left(DWNLDID,6) <= left(@SelId,6))
    |";
    ЗапросСКЛ.УстановитьТекстовыйПараметр("ИдБазы", ИдБазы);
    ЗапросСКЛ.УстановитьТекстовыйПараметр("ИдВыгрузки", ИдВыгрузки);
    ЗапросСКЛ.ВыполнитьСкалярный(ТекстЗапроса);
    Возврат "";
КонецФункции
//******************************************************************************
35 Shved_72
 
17.01.17
09:55
нашел пока от NS. попробую
UID объекта в 7.7
36 Shved_72
 
17.01.17
09:57
(36) спасибо. пригодится
37 Это_mike
 
17.01.17
10:00
38 Shved_72
 
18.01.17
13:08
39 totparen
 
19.01.17
19:16
Пользуясь случаем - http://catalog.mista.ru/public/570415/
Обмен на основе УРБД с квитированием.