Имя: Пароль:
1C
1С v8
Как в таблице значений отсортировать документы по хронологии?
,
0 DJ Anthon
 
22.12.11
16:59
Проблема только с документами, имеющими одно время, естественно. Просто сортировка по колонке как в 7.7 не канает. Куда копать? Тип колонки ставил Документы.ТипВсеСсылки(), не помогло.
37 Maxus43
 
22.12.11
17:21
(34) помню помню, содержит какое-то время похожее на правду (с) :)
но с временем сессии там была статья тоже, имеет право на жизнь
38 Ахиллес
 
22.12.11
17:22
(31) Ставь все приходы на 9 утра, все расходы на 9 вечера. Бухам скажи:"Ну вы же сами знаете, какая эта одинэска амно, нельзя по другому сделать... претензии пишите в "Спорт-Лото"".
39 DJ Anthon
 
22.12.11
17:23
(38) как мне узнать что приход, а что расход?
40 Maxus43
 
22.12.11
17:23
(36) я даже припоминаю с курсов в УЦ 3, препод говорил это неразрешимая ситуация, нельзя однозначно сказать что один создан раньше другого. приходится приходить к выводам типа (38), чтоб не мучать мозг
41 Maxus43
 
22.12.11
17:24
т.е. если отсортировать по дате + ссылке - будет тебе порядок, но не факт что правильный
42 Ахиллес
 
22.12.11
17:24
По виду документа естественно. Или у вас Поступление Товаров и Услуг расход делает?
43 DJ Anthon
 
22.12.11
17:24
(38) берем буховскую операцию, корректирующую остатки, она должна быть после покупки, но перед перемещением. все доки в одно время. в журнале все в правильном порядке. она является приходом или расходом?
44 Господин ПЖ
 
22.12.11
17:24
(35) генерим поступление/расход друг за другом 23.59.59 несколько раз, выгребаем запросом

будет на выходе

поступление
поступление
поступление
расход
расход
расход
45 DJ Anthon
 
22.12.11
17:25
(41) да, так пока что, но уже около 100 доков не провелись по этой причине, а от них лавиной позже по времени тысячи...
46 DJ Anthon
 
22.12.11
17:26
(42) обработка универсальная. откуда ей знать что Поступление - это приход? ведь ПеремещениеТМЦ - это ведь и приход и расход одновременно, так?
47 DJ Anthon
 
22.12.11
17:26
(40) но ведь анализ субконто говорит, что можно.
48 Господин ПЖ
 
22.12.11
17:26
(40) >нельзя однозначно сказать что один создан раньше другого

в клюшках было можно. развязав узкое место с блокировкой получили отсутствие позиции документа... что хуже - хз
49 Живой Ископаемый
 
22.12.11
17:27
только благодаря тому что П до Р(расход, реализация) и С(списание) и похоже типовые делали по алфавиту...
50 Господин ПЖ
 
22.12.11
17:28
>только благодаря тому что П до Р(расход, реализация) и С(списание) и похоже типовые делали по алфавиту...

скорее что id метаданных "поступления" меньше чем расхода...
51 rs_trade
 
22.12.11
17:28
(44) то есть утверждение в (12) это логический вывод из (44)? Как вид достать?
52 DJ Anthon
 
22.12.11
17:29
(49) о май гад. там вообще туча херова видов доков половина их которых вообще не нужна. поначалу я делил приход и расход, но встретились документы возврата материалов от покупателя, сторно и прочие ужасы типа операций, введенных вручную. пришлось пойти другим путем. он работает, но остался последний штрих. а вам слабо перенести ББУ в БГУ так, чтобы все пошло до копейки?
53 Maxus43
 
22.12.11
17:29
(51) да может быть у разных видов документов одинаковый гуид, успокойтесь уже)
54 Живой Ископаемый
 
22.12.11
17:30
2(50) Ну да, а меньше потому что документы похоже создавались по алфавиту - первоначальный по крайней мере костяк... Если потом добавлялась например К(корректировка), то похоже она все равно будет позже
55 DJ Anthon
 
22.12.11
17:30
(51) вид чего? Ссылка.Метаданные().Имя?
56 Spieluhr
 
22.12.11
17:31
Можно попробовать запросом выбрать из этой ТЗ и применить АВТОУПОРЯДОЧИВАНИЕ
57 Господин ПЖ
 
22.12.11
17:31
(54) ну так guid + 1...
58 Ахиллес
 
22.12.11
17:31
(46) Ты же правила пишешь, ну воткни туда реквизит какой нибудь, приходом данный вид документа является или расходом. Перемещение это естественно расход. Потому, что товар СНАЧАЛА списывается, а списаться может что то только после прихода.
59 Господин ПЖ
 
22.12.11
17:31
(56) а вот хрен...
60 Господин ПЖ
 
22.12.11
17:32
(53) какие ваши доказательства?
61 DJ Anthon
 
22.12.11
17:32
(58) читай (52)
62 Господин ПЖ
 
22.12.11
17:33
(58) все это куита...

ЗЫ а при приход/списание 23.59.59 в списании партий в 8-ке наступает фееричный писец...
63 DJ Anthon
 
22.12.11
17:34
(58) вот 1С-ОВЦЫ так и сделали... при переносе наступает фееричный п-ц.
64 Живой Ископаемый
 
22.12.11
17:34
2(60) Наличие ПолучитьССылкуНового()
65 Господин ПЖ
 
22.12.11
17:35
(64) оно для разных видов генерит одинаковый гуид?
66 Ахиллес
 
22.12.11
17:36
(62) Вообще то я про 21:00 говорил.
(63) Колись давай, как сделал.
67 Живой Ископаемый
 
22.12.11
17:36
2(65) Вернее УстановитьССылкуНового()
и достаточно того, что эти одинаковые УИДы мы можем поставить туда вручную
68 DJ Anthon
 
22.12.11
17:37
(58) самое обидное, что при переносе 7.7 на 8.2 такой загвоздки бы не возникло, ведь в 7.7 я могу их отсортировать как надо ;)
хорошо, что в БГУ нет такой керни, как создание проводок датой, отличной от даты создания документа.

(66) снял флаг проведения, но при переносе все затронутые документы (ссылки на них) сохраняю в отдельной таблице, после переноса к файлу пристыковываю узел с данными о порядке проведения документов, после загрузки данных таблица восстанваливается из этого узла и все доки проводятся. шикарно работает. осталось сабж убрать
69 Живой Ископаемый
 
22.12.11
17:38
Вообще можем сделать так, что в каждом ссылочном метаданном, которое может заводиться в предприятии будет по одному объекту с одинаковым  уидом
70 DJ Anthon
 
22.12.11
17:39
(66)+ переносятся документы чуть ли не рекурсивно, поэтому сортировать таблицу можно только после того, как все объекты выгружены.
71 Господин ПЖ
 
22.12.11
17:40
(67) >и достаточно того, что эти одинаковые УИДы мы можем поставить туда вручную

вручную в базе 1С можно много чего поставить... ибо спроектирована она так
72 DJ Anthon
 
22.12.11
17:40
(69) а вообще зачем?
73 Mort
 
22.12.11
17:40
(67) Нифига. Эта функция принимает ссылку. А если ссылку получать  методом ПолучитьСсылку с одинаковым УИД, ссылки разных видов будут один хрен разными.
74 rs_trade
 
22.12.11
17:40
не. обсуждали же 1000 раз про виды. если бы гуид вид содержал, мы бы легко по нему объект получали без всяких менеджеров объектов. А пока будте добры указать док или спр для которого объект хочешь получить.
75 Живой Ископаемый
 
22.12.11
17:41
2(72) не знаю... мне интересно... например можно в справочнике с иерархией элементов родителю поставить родителя потомка... тоже прикольно
76 DJ Anthon
 
22.12.11
17:42
у вас тут, смотрю, уже высокие материи поперли.
короче, дело к ночи (у меня скоро полночь). попробую написать сортировку вручную. может, получится...
77 Живой Ископаемый
 
22.12.11
17:42
2(74) пойнт в том, что явно не содержит, но при сортировке - учитывается.. и сначала будут идти все уиды одного вида, а потом другого...
78 rs_trade
 
22.12.11
17:43
(77) так может платформа поле с видом добавляет. надо глянуть профайлером
79 Господин ПЖ
 
22.12.11
17:44
>не. обсуждали же 1000 раз про виды. если бы гуид вид содержал, мы бы легко по нему объект получали без всяких менеджеров объектов.

я думаю что это вещь односторонняя... чтобы можно было писать ссылки из баз не являющимися УРБД и одной моделью метаданных...
80 Живой Ископаемый
 
22.12.11
17:45
2(78) я все, я дальше уже не понимаю...
81 Господин ПЖ
 
22.12.11
17:48
(79) + и тогда менеджер нужен - указание в какой табличке ищем... а какого он "вида" уже реальный - уже пох...
82 DJ Anthon
 
22.12.11
17:49
посоветуйте алгоритм сортировки, если вам не трудно. особенность - элементы почти упорядочены, нельзя вычислить максимальный и минимальный, только сравнить любые два
83 Mickeleangelo
 
22.12.11
17:50
1. Таблица значений заполняется запросом? Тогда почему не использовать .МоментВремени в тексте запроса?

2. Документы в к/л одной последовательности документов регистрируются? Можно проводить как есть, в минус, по неправильной себестоимости или вообще не записывать движения по проблемному регистру, а потом спец. обработкой допроводить в нужном порядке, получаемом из последовательности.
84 Ахиллес
 
22.12.11
17:51
(82)Пузырьком.
Поэт - Пушкин, Фрукт - Яблоко, Сортировка - пузырьковая :-)
85 DJ Anthon
 
22.12.11
17:52
(84) вроде быстрая лучше подойдет. они ведь почти упорядочены.
86 DJ Anthon
 
22.12.11
17:53
(83) в случае нехватки док тупо не проводится, менять конфигу низя. вот так.
87 Ахиллес
 
22.12.11
17:53
Да эт шутка. Я там смайлик поставил, для тех у кого скоро полночь и кто заработался :-)
88 DJ Anthon
 
22.12.11
17:55
(87) пасибо, вот мне щас блин так смешно ;) перенос занимает 6 часов. мне б желательно без ошибок написать, чтобы утром опять не сидеть расстроенным. все доки вручную проводятся, осталось только научить этому обработку.
89 DJ Anthon
 
22.12.11
17:57
а дома инета нет до субботы и приходится здесь всю инфу собрать
90 ilpar
 
22.12.11
17:59
(0)
закинуть в запрос, отсортировать. Выгрузить
Сортировать Дата+МоментВремени
91 Mickeleangelo
 
22.12.11
18:00
(86) Тогда как в таком случае поможет сортировка документов по хронологии? МоментВремени документа изменить нельзя. Порядок выгрузки документов обработкой обмена xml вообще не гарантируется никак. Надо писать свою обработку переноса. :)
92 Господин ПЖ
 
22.12.11
18:01
>Тогда как в таком случае поможет сортировка документов по хронологии

нету ее в 8-ке... нету...
93 DJ Anthon
 
22.12.11
18:02
(91) короче, конкретно в моем случае все просто. сделаю выборку по всем докам уже в новой базе и проведу, в случае, если док есть в списке проведенных. блин, как все оказалось просто...
94 DJ Anthon
 
22.12.11
18:03
а сама по себе задача сортировки отпадает. вуаля! вечером ждите обновление на
http://infostart.ru/public/99736/
95 DJ Anthon
 
22.12.11
18:07
(91) а если поменять дату документа, записать, а потом вернуть обратно и снова записать, он же изменится? правда, в конец секунды, но ведь мне это и надо, по идее.. задача сортировки для корректного переноса в принципе решаема.
96 rs_trade
 
22.12.11
18:11
(78) ну конечно. УПОРЯДОЧИТЬ ПО МоментВремени превращается в ORDER BY ДатаВремя+номерТаблицы+Ссылка
97 Живой Ископаемый
 
22.12.11
18:12
вот-вот... НомерТаблицы...
98 Господин ПЖ
 
22.12.11
18:12
(96) #спасибопутинузаэто...
99 Mickeleangelo
 
22.12.11
18:13
(92) Только ТС не говорите об этом…
(95) Формально, документы будут в одной секунде, т.к. (92). Не уверен, что документ при такой операции «переместится в конец секунды».
100 rs_trade
 
22.12.11
18:14
(96) УПОРЯДОЧИТЬ ПО Ссылка превращается в НомерТаблицы+Ссылка

Отсюда вывод. если сортрировать по гуиду, а не ссылке. То можно и последовательность получить
101 Живой Ископаемый
 
22.12.11
18:15
условно говоря:

Перемещение - таблица1
Поступление - таблица2
Реализация -  таблица3

имеем в 23.59.59 три документа:

1. Поступление№1
2. Перемещение№1
3. Реализация№1

и вот мы строим запрос с упорядочиванием, и он нам возвращает:

1. Перемещение№1
2. Поступление№1
3. Реализация№1


мва-ха-ха, как говорицца...
102 Живой Ископаемый
 
22.12.11
18:16
2(10) "Отсюда вывод. если сортрировать по гуиду, а не ссылке. То можно и последовательность получить" - блин! только если все документы созданы в рамках одного сеанса
вот исключительно... если половина создана в одном сеансе, а половина в другом - уже все ломается...
103 rs_trade
 
22.12.11
18:16
+(100) разница между гуидом и ссылкой, что гуид это число, а ссылка понятие платформы с которым она поступает по своему усмотрению.
104 Господин ПЖ
 
22.12.11
18:17
(101) ага... такое вот фифо... а когда начинается выгребание остатков на "горячо любимый всеми" моментвремени такой цирк с конями наступает...
105 rs_trade
 
22.12.11
18:17
(102) давай частный случай пока рассмотрим. одна локальная база. все доки отсюда.
106 Господин ПЖ
 
22.12.11
18:17
(100) на это закладываться нельзя...
107 Живой Ископаемый
 
22.12.11
18:19
2(103)
Сеанс1
Сгенерирован первый уид, скажем 55555,
следующий будет 55556, потом 55557


Вышли, зашли, сеанс 2:

Сгенерирован первый уид, 44444,
следующий 44445, 44446
108 rs_trade
 
22.12.11
18:19
(106) я бы тоже конечно не стал. но порассуждать можно.
109 rs_trade
 
22.12.11
18:20
(107) да нет. так не будет. содержит он время.
110 Живой Ископаемый
 
22.12.11
18:21
2(109) будет! время чего он содержит?
111 Живой Ископаемый
 
22.12.11
18:22
2(109) давай говорить после того, как ты соберешь первые уиды из 10 сеансов выполненных на одной машине в одну базу, но с выключением/включением машины
112 Господин ПЖ
 
22.12.11
18:22
(110) а время какое? локальное? или общее с учетом часовых поясов?
113 rs_trade
 
22.12.11
18:31
про время у меня какие то смутные воспоминания. вроде как читал где то. пойду в библиотеку схожу. пороюсь в первоисточниках.
114 Живой Ископаемый
 
22.12.11
18:39
кто не сильно занят? Нужно провести эксперимент - записать 10 документов Авансовый Отчет в одной базе, в одно дату/время, но в разные сеансы, то есть заходя/выходя из 1С, и выключая/включая машину... Зашли, создали, вышли..., выключили, включили, зашли-создали-вышли...

Потом в консоли запросов выбрать эти документы и вывести их УИДы...
115 rs_trade
 
22.12.11
18:42
я только что делал

одна сессия

0000-000001    4011-12-22 23:59:59.000    0x8DA60016D4FD5CA511E12CA487F08C27
0000-000001    4011-12-22 23:59:59.000    0x8DA60016D4FD5CA511E12CA487F08C28
0000-000002    4011-12-22 23:59:59.000    0x8DA60016D4FD5CA511E12CA487F08C29
0000-000002    4011-12-22 23:59:59.000    0x8DA60016D4FD5CA511E12CA487F08C2A

вышел, зашел

0000-000003    4011-12-22 23:59:59.000    0x8DA60016D4FD5CA511E12CA8443E0CAC
116 Живой Ископаемый
 
22.12.11
18:43
машину выключал включал?
117 rs_trade
 
22.12.11
18:45
+(155) вот после рестарта сервиса 1С

0000-000003    4011-12-22 23:59:59.000    0x8DA60016D4FD5CA511E12CAB8140B23C
118 Живой Ископаемый
 
22.12.11
18:47
ладно, вечером
119 cobRA
 
22.12.11
18:48
В 8-ке проще документы раскидать по времени, чем иметь постоянный гемор с 23:59:59.
120 cobRA
 
22.12.11
18:49
+(119) Правда, если документов одного типа не сотни тысяч в течении дня.
121 cobRA
 
22.12.11
18:56
А так всё становится отлично - сначала приходы, потом расходы. И никаких проблем :))
122 rs_trade
 
22.12.11
19:10
хотя 1С говорит что значение ссылки генерится без гарантии получения неубывающей последовательности
123 vmv
 
22.12.11
21:59
ДокументОбъект.<Имя документа> (DocumentObject.<Имя документа>)
МоментВремени (PointInTime)
Синтаксис:

МоментВремени()
Возвращаемое значение:

Тип: МоментВремени.

Описание:

Получает момент времени документа.

Доступность:

Сервер, толстый клиент, внешнее соединение.
Пример:

// (в модуле документа ПроведениеПоПартиям)
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("МоментВремени", МоментВремени());
Запрос.Текст =
"ВЫБРАТЬ
|    ПроведениеПоПартиям.Ссылка КАК РегламентныйДокумент
|ИЗ
|    Документ.ПроведениеПоПартиям КАК ПроведениеПоПартиям
|
|ГДЕ
|    ПроведениеПоПартиям.МоментВремени >= МоментВремени";
Выборка = Запрос.Выполнить().Выбрать();

СП - справка к размышлению, зачем лепить велосипед.

конечно, нужно использовать МВ, как - это уже дело вкуса
124 vmv
 
22.12.11
22:00
в 7.7 была позиция документа - МВ его наследник
125 viktor_vv
 
22.12.11
22:27
(123) Глядя на (115) я так подозреваю, что для 5 разных документов из (115) этот метод вернет одинаковое значение 4011-12-22 23:59:59.000. Дальше как быть ? В семерке это хранилось в одной таблице и там легко можно было получать максимальное значение в пределах секунды и соотвественно двигать по оси.
126 vmv
 
22.12.11
22:33
преобразовать гуиды в 10-е и сортировать)
127 FIXXXL
 
22.12.11
23:29
верю в Нуралиева
(0) а шо дает ТаблицТвоя.Сортировать или как оно
и в скобочках твою колонку
128 DJ Anthon
 
23.12.11
08:15
я разобрался, действительно, в 1С 8 нет такого понятия как позиция документа. документы в одной секунде будут находиться в один момент времени независимо друг от друга, только положение документа в конфигурации определяет его положение в журнале (хотя и тут я, возможно не прав), но главное, что перенос заработал, всем большое спасибо!
129 DJ Anthon
 
23.12.11
08:16
(99) трудно так быстрко переделать идеологию под градом пуль ;) придется бухов учить время выставлять правильно. и бить по рукам за неповиновение.
130 DJ Anthon
 
23.12.11
08:22
(127) думал, порядок проведения документов восстанавливает, а его, оказывается, нет..
131 Леха Дум
 
23.12.11
08:51
фифо, лифо... а последовательность вам никак не поможет?
132 NcSteel
 
23.12.11
08:58
(131) Конечно нет , так как обмен .
133 NcSteel
 
23.12.11
09:00
(0) В общем нет возможности отсортировать документы по дате на одну секунду.
134 NcSteel
 
23.12.11
09:00
(133) + по дате *создания

В обем это и не нужно .
135 Леха Дум
 
23.12.11
09:21
ну как вариант тогда применять сортировку по умолчанию - приход по позиции должен стоять раньше расхода
136 DJ Anthon
 
24.12.11
13:30
(135) приход - тн - реализация - возврат от покупателя - тн - списание
все в одной секунде провели, умудрились же...
тн - требование-накладная