|
База sql. Можно ли прямо в скуле удалить некоторые проводки у операции доков | ☑ | ||
---|---|---|---|---|
0
Обработка
03.03.10
✎
12:18
|
Прямо в скуле менял счета в проводках. Менял описания в таблицах а вот не приходилось удалять проводки. Вот думаю возможно ли это? Ведь есть же несколько таблиц итогов остатков....
зЫ цель перевести некоторые движение с бухитогов в регистры. Хочу в режиме допроведение провести по регистрам а из ореперации тупо по фильтру удалить ненужные проводки... |
|||
1
Ёпрст
03.03.10
✎
12:20
|
запросто
|
|||
2
Обработка
03.03.10
✎
12:22
|
(1) А как быть с итогами и отборами? Просто после скулевского удлаения пересчитать итоги?
|
|||
3
Ёпрст
03.03.10
✎
12:30
|
(2) ну да.
|
|||
4
Обработка
03.03.10
✎
13:40
|
(3) спасибо попробую.
|
|||
5
Обработка
05.03.10
✎
08:48
|
Народ, кому не в лом помогите кто может. Дайте примерчик удаления. Думаю кто это проделывал напшут код за 5 минут. А то я что то пытаюсь делать не могу ...
Нужно удалить из таблицы проводки со счетами дебета или кредита равным ХХХ.Х и чтоб документ котрый проводил имеет вид "ZZZZZZZ" |
|||
6
Mikeware
05.03.10
✎
08:52
|
1сQA есть?
|
|||
7
Обработка
05.03.10
✎
08:59
|
да я уже там делал кой что ну допустим год назад вто что делал
Declare @Kod1 char(9), @Kod2 char(9) select @Kod1=ID from _1SACCS where SCHKOD ='90.0.' select @Kod2=ID from _1SACCS where SCHKOD ='81.1.' update _1Sentry set ACCDTID = @Kod2 where accdtid = @Kod1 |
|||
8
skunk
05.03.10
✎
09:17
|
(5)поставь ты себе 1С++ ... там все по-настоящему ... одноэсовскому ...
(6)он есть ... вот только пользоваться им надо уметь |
|||
9
Mikeware
05.03.10
✎
09:25
|
(8) А чего там уметь-то?
|
|||
10
skunk
05.03.10
✎
09:27
|
(9)тот же язык запросов знать ... что и откуда выбирать
|
|||
11
Ёпрст
05.03.10
✎
09:38
|
Ну.. тип того:
стр=" |DELETE |FROM _1SENTRY |WHERE (DOCID IN(SELECT Жур.iddoc FROM 1sjourn as Жур Where Жур.iddocdef=$ВидДокумента.ПоступлениеТМЦ )) |and ((ACCDTID = :СчетДебета)OR(ACCKTID =:СчетКредита))"; RS.УстановитьТекстовыйПараметр("СчетДебета",СчетПоКоду("62.1")); RS.УстановитьТекстовыйПараметр("СчетКредита",СчетПоКоду("90.1")); |
|||
12
МихаилМ
05.03.10
✎
10:00
|
(11)
а корректировка таблиц итогов где? |
|||
13
Ёпрст
05.03.10
✎
10:04
|
(12) в (2) ..
|
|||
14
Ёпрст
05.03.10
✎
10:06
|
+13 вот блин заняться нечем, как самому толкать руками еще 2 таблички итогов, когда они и так быстро сами рассчитываются потом...
Тем более. это , на сколько я понял, разовая залипуха. |
|||
15
Обработка
05.03.10
✎
11:16
|
(10) Верно гвришь надо знать но 1c++ надо ставить потом изучать тоже все равно в квери аналайзере хотя и не умею думаю достаточно подсказки чтоб понять конструкцию.
Ёпрст3, спасибо не раз выручал. БУду пробовать.. |
|||
16
МихаилМ
05.03.10
✎
11:27
|
если разовая операция - почему просто проводки нельзя удалить штатно.
|
|||
17
mikecool
05.03.10
✎
11:30
|
не раз делал, если док в глубоко закрытом периоде, а проводки косили
|
|||
18
Ёпрст
05.03.10
✎
11:30
|
(16) Это к автору вопрос... может долго слишком.
|
|||
19
Обработка
05.03.10
✎
11:34
|
(18) точно вся беда в том что база хотя за год и 2 месяца проводок 3 млн. ДУмаю штатно удалять будет очень долго. А у меня база работает почти круглые сутки могут дать время токок доя бекапа 20 -30 мину. ну Вечерком могу выбить пару часов . А удалять штатно думаю придется по 3-4 часа.
|
|||
20
Обработка
05.03.10
✎
11:35
|
пишу
Select NUMBER, DOCID FROM _1SENTRY WHERE (DOCID IN(SELECT жур.iddoc FROM 1sjourn as жур Where жур.iddocdef='ВидДокумента.РеализацияТовара' )) and ((ACCDTID = '132')OR(ACCKTID ='132')) а в ответ Server: Msg 170, Level 15, State 1, Line 3 Line 3: Incorrect syntax near '1'. |
|||
21
mikecool
05.03.10
✎
11:37
|
(19) нда... пару часов, говоришь? :)
помню резал базу с 35 до 5 гиг - ушло пол дня только на скрипты, а потом еще выравнивание косяков, если будут |
|||
22
mikecool
05.03.10
✎
11:38
|
_1sjourn
|
|||
23
Ёпрст
05.03.10
✎
11:40
|
А вот это шо за бред ?
Where жур.iddocdef='ВидДокумента.РеализацияТовара' ) |
|||
24
Обработка
05.03.10
✎
11:41
|
(23) Пыталсязадать вид дока
(22) сенкс исправил теперь пишет Server: Msg 245, Level 16, State 1, Line 1 Syntax error converting the varchar value 'ВидДокумента.РеализацияТовара' to a column of data type int. |
|||
25
Ёпрст
05.03.10
✎
11:42
|
(24) ну ё.. скопируй его из таблички _1sjourn
|
|||
26
mikecool
05.03.10
✎
11:43
|
(24) может лучше ну его, не надо?
|
|||
27
Обработка
05.03.10
✎
11:45
|
(26) Да нееет не боисья на копии все проверю и засеку. Если отлажу скрипт удаление и пересчет итогов займет ну более пол часа. В итоге в боевой базе за час уложусь думаю.
|
|||
28
Обработка
05.03.10
✎
11:45
|
(25) Не совсем понял мысль куда как скопировать?
|
|||
29
mikecool
05.03.10
✎
11:46
|
(27) оптимист
|
|||
30
Обработка
05.03.10
✎
11:49
|
Недавно штатно итоги пересчитывал заняло час даже меньше а скирпт удалит за 5 минут ну пусть за 10 что я не так оценил?
|
|||
31
Ёпрст
05.03.10
✎
11:49
|
(28) открой табличку _1sjourn в EM и скопиряй значение поля iddocdef для нужного вида документа..
Потом воткни в свой запрос.. типа ' 1B' |
|||
32
mikecool
05.03.10
✎
11:50
|
(30) если у тебя скулевый скрипт отрабатывает за 10 минут, то нафик такую маленькую базу резать?
|
|||
33
Обработка
05.03.10
✎
11:50
|
(31) ооо примерно так и думал...
|
|||
34
mikecool
05.03.10
✎
11:50
|
+32 ибо не трункаешь же таблицы?
|
|||
35
Sadovnikov
05.03.10
✎
11:51
|
(31) "типа ' 1B'" - это ж скуль... Так что - "Типа 2569"
|
|||
36
Ёпрст
05.03.10
✎
11:51
|
аналогично получи ACCDTID и ACCKTID из таблички _1SACCS ..зная код дебета и кредита..
|
|||
37
Ёпрст
05.03.10
✎
11:52
|
(35) :) Ага.. мне лень на скуль сервак лезть..
|
|||
38
Обработка
05.03.10
✎
11:56
|
(32) Если че я базу не режу а перевожу из бухитогов в регистры некторые движение чтоб облегчить базу...
|
|||
39
Ёпрст
05.03.10
✎
11:56
|
(38) Зачем ?..
|
|||
40
Ёпрст
05.03.10
✎
11:56
|
Конфа какая изначально?
|
|||
41
Обработка
05.03.10
✎
12:00
|
иначально база была типова бухия. прикрутил туды производсво. Но выпуск перемещение и продажа ГП занимает очень много движение и порведения очень сложно сделать. Потом регисры и так буду прикручивать для упраленческих отчетов. так что доки так и так уже проводят в регистру. Удалив все движение ГП из бухитогов а туда всо лишь буду проводки сммарные за месц таким образом у меня база будет облегчена и будет возмодность гибкого проведение по регистрам итп
|
|||
42
Обработка
05.03.10
✎
12:01
|
(36) Знчит придется черезпеременные как то связать?
|
|||
43
Обработка
05.03.10
✎
12:06
|
а как же по номеру или по iddocdef,iddoc узанть что к чему? к какому виду? Туплю братцы извините
|
|||
44
Ёпрст
05.03.10
✎
12:08
|
(42) чо ? тебе просто нужно узнать 1SACCS.ID , зная код SCHKOD
|
|||
45
Обработка
05.03.10
✎
12:09
|
Получается лезу в DDS там по описанию дока лезу в таблицу в скуле узнаю ай ди этого дока в скуле подтавляю чтоль?
|
|||
46
Ёпрст
05.03.10
✎
12:09
|
(45) нет.
|
|||
47
Обработка
05.03.10
✎
12:13
|
(44) Мысль уловил. Но пока не пережувал по счета. по виду дока?
|
|||
48
Ёпрст
05.03.10
✎
12:13
|
В ЕМ открой _1sjourn и посмотри , какие там есть поля и какие значения в них..
Тебе нужно просто узнать вид документа из поля iddocdef |
|||
49
Ёпрст
05.03.10
✎
12:15
|
(47) Тебе из таблички плана счетов нужно просто узнать id счета..
|
|||
50
Обработка
05.03.10
✎
12:15
|
ну задал SELECT iddocdef,iddoc FROM _1sjourn в квери а оно мне выдало
кучу цифр в две колонки ну допустим 1396 39L и че сним делать то? Где вид дока узнаю??? |
|||
51
Обработка
05.03.10
✎
12:44
|
(49) Вобщем идею понял что из связанных таблиц нахожу их айди. Спасибо буду думать своей 1сниковой головой. блин вот же стал кодером интерпретатора...
|
|||
52
Ёпрст
05.03.10
✎
12:47
|
(50) ну блин.. по -старинке найди id вида, коли в табличке не видишь:
Док = СоздатьОбъект("Документ.РеализацияТовара"); стр = ЗначениеВСтрокуВнутр(Док); стр = Сред(стр,2,СтрДлина(стр)-2); СЗ=СоздатьОбъект("СписокЗначений"); СЗ.ИзСтрокиСРазделителями(стр); Сообщить("Ид "+Док.Вид()+" = '"+_IdToStr(СЗ.ПолучитьЗначение(4))+"'"); |
|||
53
Обработка
05.03.10
✎
13:09
|
(52) Про такое не знал хотя код в стр = ЗначениеВСтрокуВнутр(Док) можно действительно ухнать код.
Вот сдедал: Select NUMBER, DOCID FROM _1SENTRY WHERE (DOCID IN(SELECT жур.iddoc FROM 1sjourn as жур Where жур.iddocdef=' 152')) and ((ACCDTID = ' 12')OR(ACCKTID =' 12')) все равно ошибка Server: Msg 170, Level 15, State 1, Line 3 Line 3: Incorrect syntax near '1'. |
|||
54
ДенисЧ
05.03.10
✎
13:10
|
(53) _1sjourn
|
|||
55
Обработка
05.03.10
✎
13:11
|
(54) Вот же туплюю копи-пастер...
|
|||
56
Обработка
05.03.10
✎
13:15
|
Ошибок нет но и ничего не выбрал :(
|
|||
57
ДенисЧ
05.03.10
✎
13:16
|
iddocdef - числовое поле
|
|||
58
Обработка
05.03.10
✎
13:22
|
а как число вводить то?
Пишу Where жур.iddocdef=152)..... нет рез-та |
|||
59
ДенисЧ
05.03.10
✎
13:27
|
SELECT жур.iddoc FROM 1sjourn as жур Where жур.iddocdef=152
Даёт что-то? |
|||
60
Обработка
05.03.10
✎
13:29
|
:( не а ничего
|
|||
61
ДенисЧ
05.03.10
✎
13:29
|
дык... Нету таких докУментов, видать...
А почему 152, а не 42? |
|||
62
Обработка
05.03.10
✎
13:34
|
Код в (52) выдало мне Ид РеализацияТоваров = ' 152'
а вот сам стр1 = ЗначениеВСтрокуВнутр(Док) выдал {"O","0","0","1478","0","0"," 0 "} и в итоге SELECT жур.iddoc FROM 1sjourn as жур Where жур.iddocdef=1478 выдал список Значит все-таки код 1478 дока РеализацияТоваров ? |
|||
63
ДенисЧ
05.03.10
✎
13:38
|
(62) Открой dds и поищи по слову РеализацияТоваров. Сам увидишь
|
|||
64
Ёпрст
05.03.10
✎
13:39
|
(62) да.. просто в скуле число, в дбф- строка..
Нет щас скуля под рукой, чтоб проверить. |
|||
65
Обработка
05.03.10
✎
13:40
|
Всем спаисбо буду пробовать удалять. Еси будут ступроры :) дам знать
(63) ну так и хотел но Ёпрст3 меня отдернул выше так и я не стао лезть. подумал там таблица и код ид это не оно и тоже. |
|||
66
ДенисЧ
05.03.10
✎
13:48
|
А Ёпрст сегодня, похоже, ужо нетревз :-)
|
|||
67
Ёпрст
05.03.10
✎
13:55
|
(66) занят просто..
да и .. скуль-дбф.. смешались в кучу люди кони.. :) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |