0
- 04.05.2012 - 10:45
|
/////////////////////////////////////////////////// НачДатаВремя = СформироватьПозициюДокумента(НачДата, Число(Лев(НачВремя, 2)), Число(Прав(НачВремя, 2)), 0, 0); КонДатаВремя = СформироватьПозициюДокумента(КонДата, Число(Лев(КонВремя, 2)), Число(Прав(КонВремя, 2)), 0, 0); Ит = СоздатьОбъект("БухгалтерскиеИтоги"); Ит.ИспользоватьСубконто(ВидыСубконто.Счета, Касса); Ит.ВыполнитьЗапрос(НачДатаВремя, КонДатаВремя, СчетПоКоду("30.1"),,, 3, "Проводка", "С"); Ит.ВыбратьПериоды(); Пока Ит.ПолучитьПериод() = 1 Цикл //как получить Ит.СНД() на начало периода? т.е. на НачДатаВремя КонецЦикла /////////////////////////////////////////////////// К примеру: мне нужно отобрать кассовую книгу с позиции документа на позицию документа. Спс. | |
1
- 04.05.2012 - 11:34
|
Вообще-то, в качестве временной отметки для запроса годится и документ ;) А СНД() - это и есть Сальдо Начальное Дебитовое :) А "кассовая книга" формируется по дням. И "мне нужно" есть дикая фантазия. | |
2
- 04.05.2012 - 11:49
|
1-VZ > 1) попробую документ | |
3
- 04.05.2012 - 11:50
|
1-VZ > 2) так мне начальное нужно на позицию...а много хочу? | |
4
- 04.05.2012 - 11:52
|
3) я ж сказал...к примеру. Я понимаю что это дикая фантазия. п.с. плохо что нельзя редактировать сообщения (по привычке ctrl + enter жамкаю). Вы уж простите. | |
5
- 04.05.2012 - 12:24
|
3-zetovich > Для начала "зачем на позицию"? Если в какой-то день первый кассовый документ будет в 08:01, то начальное сальдо 50-го счета "на позицию" будет ровно таким же, как и "на начало дня". И вовсе не надо что-то изобретать. Или стоит цель совместить с Z-отчетами? Уверяю, это совершенно не требуется. Нет такого нормативного требования. И никогда не будет совпадения, поскольку есть "обычные" приходы-расходы вне кассового аппарата. Не нужно этого. СНД() дается на начало выборки. Если выборка начинается с выборки по периоду, то СНД (ровно как и СНК, СКД, СКК, ДО и КО) выдаются именно по границам периода. Но в сабже период запроса = "Проводка". А СКД и прочее годится для периода "календарного" (Месяц, Квартал, День, Год). Так что для "кассовой книги" алгоритм д.б. следующим: вначале по "календарному" периоду определяем конечное и начальное сальда (можно вместо конечного Обороты, не суть), затем делаем выборку уже по периоду = "Проводка", тщательно суммируя (самостоятельно) оборот по проводкам. При достижении конца выборки сравниваем полученный оборот "по проводкам" с предварительно бережно сохраненными значениями ДО() и КО(). Ну, или получая конечное сальдо, что есть начальное сальдо + оборот. Сравниваем тогда с бережно сохраненным СКД(). В случае совпадения - все хорошо. В случае несовпадения подключаем драйвер барабана, вузевулы, и выводим на экран грозное предупреждение, в в печатную форму - строчку о расхождении результатов с бухучетом. | |
6
- 04.05.2012 - 12:35
| 0-zetovich >все так "к примеру"... какие-то непонятные документы, немыслимые счета и виды субконто... что нужно-то? | |
7
- 04.05.2012 - 14:02
|
6-Buhta >Самописная конфа для общепита + Рабочее место официанта (бух, не мое). Попросили кассовую книгу. Но так как это Кафе, то время имеет место быть. Конечно хотел схитрить. Взять из бухгалтерии (Украинской. Я с Украины). Я так и думал как, как сказал VZ. | |
8
- 04.05.2012 - 18:54
| кто-нибудь понял о чём речь? | |
9
- 04.05.2012 - 19:03
| каждый о своем, как обычно. Я ничего не понял (хотя сочувствую обоим;-) | |
10
- 04.05.2012 - 21:55
| 8-Пацталоцци > а что именно не понятно? мне нужна кассовая книга не с Дата1 по Дата2 (Даты), а что б можно было укахать временной интервал. т.е. с 04.05.12 13:00 по 04.05.12 17:00 | |
11
- 05.05.2012 - 07:15
|
Да все понятно, но что конкретно :) Перевожу. VZ рассказывает про нормальную кассовую книгу. А аффтар хочет отчет по оперативной кассе, который упорно именует "кассовой книгой". Оба правы в своих суждениях (за исключением каши в постановке задачи у аффтара), консенсус в (7) достигнут, все довольны, пьятница (которая переносом на субботу) :) (10) Маленький вопросец. А где ты в 7.7 точное время найдешь? Брать док на 17:00 из 7.7 и надеяться, что он был введен в 17:00 - это неисправимый оптимизьм. | |
12
- 05.05.2012 - 12:39
|
(11) Даже если и будет документ на 17:00 В 77 на 1 секунду может быть выписано несколько документов ) Это если только сделать свой реквизит и писать точное время самому. | |
13
- 05.05.2012 - 14:37
|
12-ПодОпытный > 1. Ваабще-то, время документа фиксируется с гораздо большей точностью, нежели секунда. И ее можно извлечь. 2. При позиционировании границы периода документом, все эти доли секунды будут прекрасно уловлены. Ибо платформа возьмет их общего журнала документов. И в этом случае совсем не надо извлекать точное время. | |
14
- 05.05.2012 - 15:35
| Скажу по секрету, позиция документа хранится в его внутр. ИД, который можно получить через ЗначениеВСтрокуВнутр | |
15
- 05.05.2012 - 15:51
| 14-victuan > Не, не хранится ;) | |
16
- 05.05.2012 - 16:46
|
15-VZ >Блин, ты зараза, заставил меня ковыряться в моем же коде! ПозицияДок= Формат(Док.ДатаДок, "ДГГГГММДД")+Док.ВремяДок+лев(прав(ЗначениеВСтроку Внутр(Док),15),13) | |
17
- 05.05.2012 - 16:48
| И сравни с тем, что возвращает Док.ПолучитьПозицию() | |
18
- 05.05.2012 - 17:40
| 17-victuan > Реплика (15) относилась к (14). А там лажа :D | |
19
- 06.05.2012 - 14:04
| 18-VZ > Не горячись. Ну, подумаешь, перепутал человек IDDOC, Date_Time_IDDOC и то, что возвращает ЗначениеВСтрокуВнутр :) | |
20
- 07.05.2012 - 10:06
| 19-Sadovnikov > Да я и не горячусь :) Странно, правда, не сообразить (даже не рассматривая эту самую строку), что ID, как ссылка, принципиально не должен включать ни дату, не время, ни прочие переменные признаки. Иначе ID перестанет быть ;) | |
21
- 07.05.2012 - 10:20
| 20-VZ > Так это ж думать надо... :) | |
22
- 07.05.2012 - 14:21
|
19-Sadovnikov >Я ничего не перепутал, не думал, что меня читают тролли, которые докопаются до ложной сути моих высказываний. 20-VZ >Не бери на себя много, приписывая мне чего я не говорил и не соображал. | |
23
- 07.05.2012 - 14:26
| 22-victuan > Офигеть... Перечитай-ка еще раз (14). | |
24
- 07.05.2012 - 14:27
| вам бы двоим в Эстонию съездить...? | |
25
- 07.05.2012 - 14:32
|
24-Чучундер > Некогда... Некогда даже вдумчиво несколько раз перечитать (24), что бы понять, почему ты именно это написал... Поясни? | |
26
- 07.05.2012 - 14:37
| 23-Sadovnikov >Заметь, там нет слова "целиком". Зачем ты его туда приписываешь? Вот если бы было "позиция документа целиком хранится в его внутр. ИД", то - да. | |
27
- 07.05.2012 - 14:40
| спорим на пирожок, что не подеретесь! | |
28
- 07.05.2012 - 14:40
|
26-victuan > Офигеть дважды... Какой, извиняюсь, нафиг "целиком"? Единственный кусочек позиции документа, который хранится в IDDOC - это сам IDDOC. Всё. Ничего более. Уж признай, что в (14) лаже написал. Ничего страшного в этом нет - все мы периодически лажаемся по полной. | |
29
- 07.05.2012 - 14:45
|
28-Sadovnikov >Из чего состоит позиция документа? Дата+Время (с точностью до секунды) + позиция внутри секунды = часть его внутр. ИД. Что написано в (14)? "позиция документа хранится в его внутр. ИД" А про "целиком" это твои фантазии. | |
30
- 07.05.2012 - 14:46
| Может я [для кого-то] нечетко выразил свою мысль, но она была такой у меня изначально. | |
31
- 07.05.2012 - 14:48
| 27-Чучундер >Может и подеремся. Мы ведь не так уж и далеко друг от друга [географически] ;) | |
32
- 07.05.2012 - 14:50
|
29-victuan > Ну зачем бред пишешь? Позиция документа: поле Date_Time_IDDOC таблицы _1SJOURN в скулевой базе. В dbf - несколько колонок таблицы 1SJOURN. Состоит из: 1. 8 символов - дата в формате ГГГГММДД 2. 6 символов - количество секунд от начала дня до времени документа, умноженное на 1000 и переведенное в 36-тиричный формат 3. 9 символов - IDDOC (ИД) документа. Всё. И никакие "целиком" или "не целиком" тут фигурировать не могут. | |
33
- 07.05.2012 - 14:56
| 32-Sadovnikov >Я написал что-то отличное от твоего? | |
34
- 07.05.2012 - 14:59
|
33-victuan > Еще как писал: "позиция внутри секунды = часть его внутр. ИД". Про остальные твои метания я скромно помолчу :) | |
35
- 07.05.2012 - 15:01
| 34-Sadovnikov >И что тебе здесь не понравилось? | |
36
- 07.05.2012 - 15:03
|
35-victuan > 1. ИД - вовсе не позиция внутри секунды. ИД - это обычный счетчик. 2. Даже если в контексте "позиция" рассматривать ИД, как часть секунды, то IDDOC в позиции никоим образом не частично, а полностью. | |
37
- 07.05.2012 - 15:09
|
36-Sadovnikov > 1. и где противоречие? Да, ИД это обычный счетчик, но определяет он позицию именно в пределах секунды, которая задана остальной частью ПозицииДокумента. 2. Я нигде не употреблял IDDOC, это твои фантазии. Я говорил о внутр. ИД, который возвращается функцией ЗначениеВСтрокуВнтур, вот часть этого результата и входит в позицию документа. Часть, не целиком. И расскажи мне про остальные мои метания. Мне интересно. | |
38
- 07.05.2012 - 15:14
|
37-victuan > 1. Не определяет он позицию внутри секунды... Если ты перенесешь документ по времени в другую секунду - ты не получишь ту же часть секунды, которая была раньше. В данном случае IDDOC - это просто поле для сортировки, позволяющее однозначно отсортировать по времени. И все. Смысловой нагрузки "часть секунды" оно не несет. 2. Функция ЗначениеВСтрокуВнтур никогда не возвращала ИД документа. Она возвращала, возвращает и, надеюсь, будет возвращать строку, из которой 1С-ка сможет восстановить объект. И "ИД документа" - это лишь часть этой строки. | |
39
- 07.05.2012 - 15:23
|
38-Sadovnikov > 1. Еще как определяет. Если перенесешь док в другую секунду, будет определять его положение в другой секунде относительно других документов с той же датой и временем. Да, смысловой нагрузки "доля секунды" тут нет, никто этот смысл и не вкладывал. Это твоя очередная фантазия или просто словоблудие. 2. я не говорил, что функция ЗначениеВСтрокуВнтур возвращала ИД документа, я сказал "внутр. ИД". Это термин, он был введен другим автором, я просто его повторил. Я знаю, что он неточен, вернее говорить "строковое системное представление". Но привычка укоренилась, т.к. я часто общался раньше с тем автором. | |
| Интернет-форум Краснодарского края и Краснодара |