Имя: Пароль:
1C
 
Получение документа каждого вида.
0 falselight
 
29.01.17
12:06
Задача в переборе метаданных и получении последнего документа каждого вида. Как это примерно можно сделать, можно пример кода? Заранее спасибо.
1 zak555
 
29.01.17
12:07
что есть последний документ ?
2 falselight
 
29.01.17
12:15
(1) последний введенный, последний в журнале
3 b_ru
 
29.01.17
12:17
Примерно так:

Для Каждого Эл Из Метаданные.Документы Цикл
  ТекстЗапроса = "ВЫБРАТЬ т.Ссылка КАК Ссылка ИЗ Документы." + Эл.Имя + " КАК Т УПОРЯДОЧИТЬ ПО Ссылка УБЫВ";
4 falselight
 
29.01.17
12:18
(3) Спасибо за пример.
Кажется есть функция выбрать у документа, где можно
задавать обратный порядок выборки.
5 zak555
 
29.01.17
12:23
(3) твой код не отработает следующую ситуацию:

ввожу документ1 в базу со временем 12:00
ввожу документ2 в базу со временем 11:00

скорей всего твой код выдаст документ2
6 zak555
 
29.01.17
12:23
=> нужен момент времени
7 falselight
 
29.01.17
12:25
(6) момент времени для упорядочивания?
8 Мимохожий Однако
 
29.01.17
12:52
(0) А что потом с этим делать?
9 falselight
 
29.01.17
13:30
(8) Передать в функцию ЗарегистрироватьИзменения().
Что бы сделать все документы доступными для обмена.
Для его проверки.

Какие есть ещё варианты получения последнего документа каждого вида?

Для каждого Док Из Метаданные.Документы Цикл
   // ...
КонецЦикла;

Сам не смотрел пока ещё собираю информацию.
10 Lexey_
 
29.01.17
13:42
(9) Ливингстар изобретает очередной лисапед?Если для проверки обмена, то в типовой обработке "Регистрация изменений для обмена" есть возможность зарегистрировать изменения по одному объекту для каждого типа.
11 falselight
 
29.01.17
13:56
(10) Это как, и что?
Мне нужно, зарегистрировать изменения по последнему документу каждого вида.
Для того что бы проверить, что обмен не выдает ошибок,
не ломается и это видно по последним документам.
Ну и справочники тоже нужно.
12 falselight
 
29.01.17
13:59
почему не выводится сообщить?

//
Процедура КнопкаВыполнитьНажатие(Кнопка)
    Для каждого Док Из Метаданные.Документы Цикл
        Сообщить(Док.Имя);
    КонецЦикла;
    
КонецПроцедуры
//
13 falselight
 
29.01.17
14:00
(12+) А вот вывелись. Сейчас как получить все же последний документ правильно?
В (5) Какое то замечание критичное, не совсем понятное.
14 falselight
 
29.01.17
14:20
подскажите пожалуйста как поправит что бы работало?

    Для каждого Док Из Метаданные.Документы Цикл
        ВыборкаДок = Документы.Док.Имя.Выбрать(, , , "Дата Убыв");
        Сообщить(Док.Имя);
    КонецЦикла;
15 falselight
 
29.01.17
14:23
видимо так

//
Процедура КнопкаВыполнитьНажатие(Кнопка)
    Для каждого Док Из Метаданные.Документы Цикл
        ВыборкаДок = Документы[Док.Имя]Выбрать(, , , "Дата Убыв");
        Сообщить(Док.Имя);
    КонецЦикла;
    
КонецПроцедуры
//
16 Web00001
 
29.01.17
14:25
(13)Он говорит надо как то так наверно
ТекстЗапроса = "ВЫБРАТЬ ПЕРВЫЕ 1 т.Ссылка КАК Ссылка ИЗ Документы." + Эл.Имя + " КАК Т УПОРЯДОЧИТЬ ПО Ссылка.ДАТА УБЫВ";
17 falselight
 
29.01.17
14:31
Моё решение:

//
Процедура КнопкаВыполнитьНажатие(Кнопка)
    Для каждого Док Из Метаданные.Документы Цикл
        ВыборкаДок = Документы[Док.Имя].Выбрать(, , , "Дата Убыв");
        ВыборкаДок.Следующий();
        Сообщить(Док.Имя);
        Сообщить(ВыборкаДок.Ссылка);
    КонецЦикла;
    
КонецПроцедуры
//


Нормальное ли?
18 falselight
 
29.01.17
14:39
P.S.


//
Процедура КнопкаВыполнитьНажатие(Кнопка)
    Узел = ПланыОбмена.бит_Полный.НайтиПоКоду("006");
    Для каждого Док Из Метаданные.Документы Цикл
        ВыборкаДок = Документы[Док.Имя].Выбрать(, , , "Дата Убыв");
        ВыборкаДок.Следующий();
        ПланыОбмена.ЗарегистрироватьИзменения(Узел, ВыборкаДок.Ссылка);
        Сообщить(Док.Имя);
        Сообщить(ВыборкаДок.Ссылка);
    КонецЦикла;
    
КонецПроцедуры
//
Независимо от того, куда вы едете — это в гору и против ветра!