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