|
v7: Небольшое замешательство с бухгалтерскими итогами | ☑ | ||
---|---|---|---|---|
0
Jokerman
27.11.12
✎
10:21
|
Здравствуйте всем. Проблема не сказать что проблема, просто интересно стало. Есть некий кусок кода:
БИ=СоздатьОбъект("БухгалтерскиеИтоги"); БИ.ИспользоватьСубконто(ВидыСубконто.МестаХранения,ВыбСклад,2); БИ.ИспользоватьСубконто(ВидыСубконто.Материалы); БИ.ВключатьСубсчета(-1); БИ.ВыполнитьЗапрос(НачДата,КонДата,"10",,,,"День"); Если после выполнить Би.ВыбратьПериоды(), то возвращает 1, но если до это отрывка поставить цикл, где я отменяю проведение документов, которые делаю движения по 10 счету. То Би.ВыбратьПериоды()=0 становится. Что можно сделать, чтобы отрабатывало всегда? |
|||
1
Ёпрст
27.11.12
✎
10:23
|
Ты хочешь получать потом то, что до этого удалил ?
Грибной сезон вроде кончился ужо. |
|||
2
viktor_vv
27.11.12
✎
10:26
|
Поменять местами куски кода, не ?
|
|||
3
Jokerman
27.11.12
✎
13:22
|
(1) остатки то есть, я отменяю расход, а остатки от прихода должны быть.
(2) Нельзя мне надо остатки за минусом движений этих доков. |
|||
4
Jokerman
27.11.12
✎
13:30
|
ап
|
|||
5
zak555
27.11.12
✎
13:32
|
> где я отменяю проведение документов, которые делаю движения по 10 счету
код покажи |
|||
6
zak555
27.11.12
✎
13:33
|
+ это ты в модуле дока выполняешь запрос ?
почему тогда на дату документа, а не на его позицию ? |
|||
7
Jokerman
27.11.12
✎
13:47
|
(5)
Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Период с НачДата по КонДата; |ОбрабатыватьДокументы все; |Обрабатывать НеПомеченныеНаУдаление; |Док = Документ.СписаниеМатериаловПоНормам.ТекущийДокумент; |Номенклатура = Документ.СписаниеМатериаловПоНормам.Номенклатура; |Авто = Документ.ПриходныйАктИмпорт3.Авто; |Группировка День; |Группировка Номенклатура; |Условие(Авто=1); |"//}}ЗАПРОС ; Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Сообщить("Не удалось выполнить запрос по документам!","!"); Возврат; КонецЕсли; ДокСписания = СоздатьОбъект("Документ.СписаниеМатериаловПоНормам"); Пока Запрос.Группировка(1)=1 Цикл Пока Запрос.Группировка(2)=1 Цикл ДокСписания.НайтиДокумент(Запрос.Док); ДокСписания.СделатьНеПроведенным(); КонецЦикла; КонецЦикла; |
|||
8
Jokerman
27.11.12
✎
13:47
|
(7) нет это в обработке
|
|||
9
zak555
27.11.12
✎
13:47
|
ты логику своих действий поясни
|
|||
10
Jokerman
27.11.12
✎
13:52
|
(9) запрос по би выполняется по дням в каждом дне я создаю док или переписываю его ТЧ. Мне нужно знать остатки по дням без учета движений доков СписаниеМатериаловПоНормам в это день.
|
|||
11
zak555
27.11.12
✎
13:56
|
(10) остатки чего ?
|
|||
12
Jokerman
27.11.12
✎
14:00
|
остатки по материалам по заданному складу, сумма и количество
|
|||
13
zak555
27.11.12
✎
14:01
|
тогда когда ты создаёшь док или переписываешь ТЧ ?
|
|||
14
Jokerman
27.11.12
✎
14:01
|
я обошел тем что беру не СКД, а СНД, но если в какой то день другие доки по расходу или приходу были он их не учтет
|
|||
15
Jokerman
27.11.12
✎
14:02
|
(13) Разницы нет в любом случае либо создаю док, либо если есть в этот день очищаю ТЧ и по новой
|
|||
16
zak555
27.11.12
✎
14:02
|
(14) рано пока говорить о том : обошёл ты это или нет
логику распиши дальше |
|||
17
zak555
27.11.12
✎
14:03
|
(15) при каких условиях идёт очистка/создание
|
|||
18
Jokerman
27.11.12
✎
14:05
|
(17) не понимаю зачем это, все прекрасно работает если убрать цикл по отмене проведения ..
|
|||
19
Jokerman
27.11.12
✎
14:07
|
Запрос.ВНачалоВыборки();
Если Запрос.Получить(ВремТаблица.День,ВремТаблица.Номенклатура)=1 ДокСписания.НайтиДокумент(Запрос.Док); ДокСписания.УдалитьСтроки(); Тогда Иначе //дока нет создаем |
|||
20
Jokerman
27.11.12
✎
14:07
|
криво вставил:
Запрос.ВНачалоВыборки(); Если Запрос.Получить(ВремТаблица.День,ВремТаблица.Номенклатура)=1 Тогда ДокСписания.НайтиДокумент(Запрос.Док); ДокСписания.УдалитьСтроки(); |
|||
21
dedmoroz777
27.11.12
✎
14:08
|
кто-нибудь что-нибудь понял?
|
|||
22
zak555
27.11.12
✎
14:08
|
(21) я не понимаю зачем ему что-то создавать / перезаписывать
|
|||
23
zak555
27.11.12
✎
14:09
|
но при это рассчитать итоги без всех движений
|
|||
24
Jokerman
27.11.12
✎
14:10
|
(23) нет, я отменяю проведение за определенный период доков одного вида, а ведь есть другие доки, которые делают движения
|
|||
25
dedmoroz777
27.11.12
✎
14:11
|
(20) если не хочешь учитывать движение дока, суммируй приход\расход по циклу по проводкам не плюсуя движения этого документа. зачем отменять проведение? каждая отмена проведения сбивает бух итоги
|
|||
26
Jokerman
27.11.12
✎
14:15
|
Пример: Материал - Gear Box редуктор. Приход был 22.08.12 в кол-ве 2 штук по 20 рублей, остаток сумовой 40 руб. Расход был 25.08.12 в кол-ве 2 штук, спивается по полной. Если я повторно загружаю, то остаток конец дня 25.08.12 - 0. И ничего не считается. Поэтому отменяю проведение.
|
|||
27
Jokerman
27.11.12
✎
14:15
|
*списывается, извините
|
|||
28
Jokerman
27.11.12
✎
14:16
|
(25) вот так не хочется, время обработки увеличится ..
|
|||
29
zak555
27.11.12
✎
14:17
|
(26) повторно загружаешь ?? это как ?
|
|||
30
Jokerman
27.11.12
✎
14:17
|
Какой то ручной пересчет есть в 7-ке?
|
|||
31
Jokerman
27.11.12
✎
14:19
|
Обшая идея: сделать обработку по переносу данных из Excel в 1с. Пользователь может загрузить данные за определенный период, а потом вдруг окажется, что где-то ошибся. Тогда он может перезагрузить неправильный период заново
|
|||
32
zak555
27.11.12
✎
14:20
|
(31) так бы сразу и сказал
|
|||
33
Jokerman
27.11.12
✎
14:22
|
(37) не думал, что этом поможет лучше понять почему система себя так ведет, хотя я наверное тоже бы так докапывался
|
|||
34
Jokerman
27.11.12
✎
14:28
|
Это правда (25)? "каждая отмена проведения сбивает бух итоги". Тогда как?
|
|||
35
Jokerman
27.11.12
✎
14:53
|
Эх
|
|||
36
dedmoroz777
27.11.12
✎
15:13
|
(26) был приход 2 шт, был расход 2 шт. Остаток 0. А что должно быть по-твоему?
(28) каждый раз пересчитывать итоги будет дольше |
|||
37
Jokerman
27.11.12
✎
15:23
|
(36) 2, ведь не надо учитывать, расход самого дока
|
|||
38
Jokerman
27.11.12
✎
15:46
|
Тогда переделаю так, процедуру расчетов остатков вынесу в модуль дока
|
|||
39
Jokerman
27.11.12
✎
15:54
|
Почему хорошие мысли приходят когда рассуждаешь сам с собой!
|
|||
40
zak555
27.11.12
✎
15:55
|
(38) ты хочешь проверку, чтобы не уйти в минус ?
|
|||
41
Jokerman
27.11.12
✎
16:28
|
(40) да + среднюю цену высчитываю
|
|||
42
zak555
27.11.12
✎
16:30
|
для ввода документа задним числом проверка на минус делается иначе
|
|||
43
Jokerman
27.11.12
✎
16:30
|
Запрос на позицию дока?
|
|||
44
Jokerman
27.11.12
✎
16:31
|
Да ладно я уже решил, в модуле документа прекрасно отрабатывает
|
|||
45
Jokerman
27.11.12
✎
16:32
|
Просто хотелось, чтобы запрос по проверке общий был, а потом посмотрел там все равно есть проверка на остаток, ну и добавил чтобы по средней сумму рассчитывала и делов ..
|
|||
46
zak555
27.11.12
✎
16:32
|
(43) в конце ветки смотри Списание "задним" числом
|
|||
47
zak555
27.11.12
✎
16:32
|
(44) как ?
|
|||
48
Jokerman
27.11.12
✎
16:37
|
Там Запрос делаю на ТекущийДокумент() и снд()
|
|||
49
Jokerman
27.11.12
✎
16:40
|
(46) Это сложные случаи у меня все проще, 1 пользователь грузит максимум раз в день движения за день. Одновременно вряд ли получится списывание
|
|||
50
Jokerman
27.11.12
✎
16:41
|
Это больше под силу 8-ой версии
|
|||
51
zak555
27.11.12
✎
16:43
|
(49) ну вот
01.01 нач остаток 0 01.01 приход1 100 01.01 расход1 100 01.01 приход2 50 01.01 расход1 45 01.01 остаток 5 и как ты будешь отрабатывать ? |
|||
52
Jokerman
27.11.12
✎
16:47
|
Смотря где позиция моего расходного дока. Ты знаешь что если сделать запрос на ТекущийДокумент(),ТекущийДокумент() то СНД() вернет остатки до то того как текущий док отработал, а СКД() после, нас устраивает СНД().
|
|||
53
Jokerman
27.11.12
✎
16:49
|
Остаток будет если после всех манипуляций в (51) будет 105, если после Приход 250, то 250
|
|||
54
zak555
27.11.12
✎
16:49
|
я к тому, что ты приход1 меньше 100 сделать не сможешь
приход2 меньше 45 |
|||
55
Jokerman
27.11.12
✎
16:52
|
А понял, идею не так сложно нам не надо у них максимум 1 приход и максимум расход. А такие вещи пусть сами контролят, они не готовы на такие затраты, если честно еле как согласились на ту сумму которую уже поставил. Спасибо может в будущем пригодится.
|
|||
56
Jokerman
27.11.12
✎
16:54
|
(53) мыслю чуть большими цифрами подумал 1 100, 250, у нас просто другие цены, чем у вас. :)
|
|||
57
zak555
27.11.12
✎
16:56
|
(55) если конроль нужен в пределах днях -- реализация проста
в модуле дока СтатусВозврата ( глПроверкаДока(Конт) ) |
|||
58
Jokerman
27.11.12
✎
16:58
|
(57) ага пока этого хватит
|
|||
59
Jokerman
27.11.12
✎
17:08
|
Спасибо всем!!!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |