Очистка базы от накопившихся данных.

Очистка базы от накопившихся данных.

Сообщение Roman » Чт янв 22, 2015 1:02 am

Скажите, пожалуйста, есть в программе функция "архивация базы данных", по сути архивация оставляет партнеров, названия товаров, и остатки по складу, все накладные удаляются. Вопрос вот в чем: у нас есть база партнеров и программа лояльности, т.е. при покупке на такую-то сумму партнер получает такую-то скидку. После архивации все суммы теряются. Как можно оставить суммы накопленные партнером оставить в новой базе после архивации? Возможно эту цифру заносить в базе данных в отдельное поле и там сохранять при изменении суммы?
Roman
 
Сообщения: 22
Зарегистрирован: Чт янв 22, 2015 12:53 am

Re: Очистка базы от накопившихся данных.

Сообщение dmitry » Чт янв 22, 2015 5:54 am

Roman писал(а): Возможно эту цифру заносить в базе данных в отдельное поле и там сохранять при изменении суммы?

Я думал об этом, но этот путь очень ненадежен - при любом редактировании данных нужно пересматривать зафиксированную сумму. А все ситуации не предусмотришь. Например, ошибочно оформили продажу на покупателя А, потом исправили на покупателя Б и еще добавили пару позиций - нужно у первого покупателя вычесть старую сумму, второму добавить новую сумму. Никогда не было бы уверенности, что накопленная сумма верна.
Идеального решения пока нет, можно перед архивацией у каждого покупателя внести накопленную сумму в графу "Примечание".
dmitry
Разработчик
 
Сообщения: 3922
Зарегистрирован: Чт янв 27, 2011 3:43 pm

Re: Очистка базы от накопившихся данных.

Сообщение Roman » Чт янв 22, 2015 9:21 am

Я думал об этом, но этот путь очень ненадежен - при любом редактировании данных нужно пересматривать зафиксированную сумму. А все ситуации не предусмотришь. Например, ошибочно оформили продажу на покупателя А, потом исправили на покупателя Б и еще добавили пару позиций - нужно у первого покупателя вычесть старую сумму, второму добавить новую сумму. Никогда не было бы уверенности, что накопленная сумма верна.
Идеального решения пока нет, можно перед архивацией у каждого покупателя внести накопленную сумму в графу "Примечание".

думал так и поступить, но покупателей в районе 10 тысяч...
а что если сделать кнопку - присвоить накопленную сумму в графу примечание? т.е. по необходимости, я перед архивацией базы жму один раз кнопку, программа все цифры заносит в графу примечание и будет нам счастье, если нужно повторно архивировать, то при нажатии кнопки значение в графе примечание не заменяется, а, допустим, через запятую добавляется, как такой вариант?
Roman
 
Сообщения: 22
Зарегистрирован: Чт янв 22, 2015 12:53 am

Re: Очистка базы от накопившихся данных.

Сообщение dmitry » Чт янв 22, 2015 11:57 am

Пожалуйста!
Скопировать текст ниже,
В программе - клавиши Ctrl+F10,
Вставить текст, нажать "ОК".

Dim Rperson As Predpr.TableSQL, R As Predpr.TableSQL, SQLtxt As String, StrM As String, StrVal As String
Rperson = DB.OpenRecordset("SELECT ID, Memo FROM Persons WHERE ID>0 AND TypeID=1", , True, "Persons")
SQLtxt = "SELECT DocumentRows.PersonID, Sum(DocumentRows.Quantity*DocumentRows.PriceReport) AS SumDb "
SQLtxt = SQLtxt & "FROM Documents INNER JOIN DocumentRows ON Documents.ID = DocumentRows.DocID "
SQLtxt = SQLtxt & "WHERE Documents.State=True and DocumentRows.AccountType=0 and Documents.TypeID In (2,9) and DocumentRows.TransNum=1 "
SQLtxt = SQLtxt & "GROUP BY DocumentRows.PersonID"
R = DB.OpenRecordset(SQLtxt)
Do While Not Rperson.EOF
R.FindFirst("PersonID=" & Rperson("ID"))
If R.NoMatch = False Then
If R("SumDb") > 0 Then
StrM = Predpr.GlobalFunction.Nz(Rperson("Memo"), "")
StrVal = CDec(R("SumDb")).ToString("N")
StrVal = "(" & StrVal & " грн)"
Rperson.Edit()
If StrM = "" Then
Rperson("Memo") = StrVal
Else
Rperson("Memo") = StrM & " " & StrVal
End If
Rperson.Update()
End If
End If
Rperson.MoveNext()
Loop
Rperson.Close()
R.Close()
dmitry
Разработчик
 
Сообщения: 3922
Зарегистрирован: Чт янв 27, 2011 3:43 pm

Re: Очистка базы от накопившихся данных.

Сообщение Roman » Пт янв 23, 2015 11:32 am

Спасибо за ответ!
но при выполнении выдало ошибку, как быть?
ИзображениеИзображение
Roman
 
Сообщения: 22
Зарегистрирован: Чт янв 22, 2015 12:53 am

Re: Очистка базы от накопившихся данных.

Сообщение dmitry » Пт янв 23, 2015 12:17 pm

Значит вы используете SQL-версию.
Немного изменил текст в предыдущем ответе, скопируйте его заново.
dmitry
Разработчик
 
Сообщения: 3922
Зарегистрирован: Чт янв 27, 2011 3:43 pm

Re: Очистка базы от накопившихся данных.

Сообщение Roman » Пт янв 23, 2015 12:25 pm

Спасибо!!! получилось!
скажите, если еще раз выполнить команду, то при изменении сумм покупок они перезапишутся в примечании?
Roman
 
Сообщения: 22
Зарегистрирован: Чт янв 22, 2015 12:53 am

Re: Очистка базы от накопившихся данных.

Сообщение vik » Пт янв 23, 2015 12:37 pm

получится так (1 000,00 грн) (1 050,00 грн) т.е будет добавлена следующая запись выполнения команды, сумма покупок изменилась на 50 грн.
vik
 
Сообщения: 742
Зарегистрирован: Пт мар 25, 2011 9:38 am

Re: Очистка базы от накопившихся данных.

Сообщение xmastree » Чт янв 29, 2015 2:23 pm

Тоже собралось много данных. Сообщите подробнее принцип действия "архивация базы данных". Что конкретно и с какими документами проходит?
xmastree
 
Сообщения: 33
Зарегистрирован: Чт июл 07, 2011 11:42 am
Откуда: Днепропетровск

Re: Очистка базы от накопившихся данных.

Сообщение dmitry » Чт янв 29, 2015 3:08 pm

Сервис/Обслуживание/Архивация_данных.
Все до 1 января будет перенесено в отдельный файл, который можно открыть в любое время. В рабочей базе появятся входящие остатки на 1 января.
dmitry
Разработчик
 
Сообщения: 3922
Зарегистрирован: Чт янв 27, 2011 3:43 pm

Re: Очистка базы от накопившихся данных.

Сообщение densh » Ср фев 25, 2015 5:34 pm

Отличная тема!
Нет ли такого волшебного кода, чтобы сделать:
1. Есть база клиентов в Excele
Скриншот 2015-02-25 19.14.20.jpg
Скриншот 2015-02-25 19.14.20.jpg (46.69 КБ) Просмотров: 4381

2. Я эту базу импортирую в Предприниматель - имя, телефон, ДР
3. Об этом пункте речь. Продать всем этим клиентам каждому по отдельности "товар", который для каждого будет стоить столько, сколько в Excele накопленная сумма. Затем создать приходы денег в кассу. И все эти накладные пусть будут зафиксированы 16февраля2015 для всех.
Объект учета "Товар" в нужном количестве у меня есть, я заранее на приход поставлю его 5 штук, хотя клиентов 3-е.

Как результат, 16 февраля 2015 года у нас появится 3 расходных накладных, 3 приходных в кассу. А в свойствах клиентов Пети, Сени и Васи появятся накопленные суммы.

Разуемеется, что у меня большая база клиентов. Я создал новую базу, клиентов перенес, а вот суммы их прежних накоплений - это брешь для продавцов. Хотят - посчитают, хотят - не посчитают. Хочу жестко эти суммы в программе провести.
Задача тяжелая, но многим спасет расстройство мозга:)
Спасибо!
densh
 
Сообщения: 41
Зарегистрирован: Чт окт 13, 2011 5:39 pm
Откуда: Киев

Re: Очистка базы от накопившихся данных.

Сообщение dmitry » Чт фев 26, 2015 6:05 am

Можно немного упростить.
В фиктивной накладной не заполнять товар, важна только сумма.

0.png
0.png (10.66 КБ) Просмотров: 4376


Чтобы она не влияла ни на долг покупателя, ни на прибыль, перейти в документе в раздел "Реальный учет" и снять все отметки.
Тогда и документ об оплате создавать не нужно.

1.png
1.png (13.55 КБ) Просмотров: 4376
dmitry
Разработчик
 
Сообщения: 3922
Зарегистрирован: Чт янв 27, 2011 3:43 pm

Re: Очистка базы от накопившихся данных.

Сообщение densh » Чт фев 26, 2015 8:29 am

Спасибо.
Но накладные делать вручную нужно. С тремя клиентами проблем нет, это не сложно.
Но мне нужно несколько тысяч провести:)
Я очень успешно пользуюсь программой в рознице.
Поэтому я и задал вопрос, возможно ли написать такой код, чтобы через ctrl+F10 произошло автоматическое создание 6000тыс накладных с суммой, которая будет подтягиваться с Excel?

UPD: Повторюсь в базе эти клиенты уже есть с днями рождениями, адресами, телефонами, примечаниями. Они же (клиенты) перед созданием новой базы были экспортированы в Excel с суммами своих накоплений.
В новую базу я их вернул (клиентов), их дни рождений, телефоны, примечания. Осталось создать 6000тыс фиктивных накладных (дата пусть у всех будет одна) с суммой для каждого, которая будет тянуться с Excel.

Спасибо!
densh
 
Сообщения: 41
Зарегистрирован: Чт окт 13, 2011 5:39 pm
Откуда: Киев

Re: Очистка базы от накопившихся данных.

Сообщение dmitry » Чт фев 26, 2015 10:37 am

Можно. Но создавать для этого специальную процедуру импорта из Excel (с кнопками, полями для указания строк/столбцов и т.д.) - это несоразмерный труд. Поэтому: если в свойствах клиентов у вас не используется графа ИНН или Примечание, пусть суммы попадут в нее, а программа получит их из базы данных.

Если это подходит, можете снова вернуться к импорту из Excel, ничего лишнего не указывать - только название и ИНН или Примечание (на самом деле будет сумма). Программа найдет каждого по названию и проставит суммы.
И поскольку этот частный случай наверное не интересен всем участникам форума, а уточнять детали еще придется, напишите на predpr4@email.com.ua какую графу вы решили использовать, как называется группа контрагентов, в которой находятся покупатели (чтобы не обрабатывать поставщиков и прочих).
А еще лучше - пришлите по почте базу данных, чтобы я сначала проверил, насколько корректно это будет работать.
dmitry
Разработчик
 
Сообщения: 3922
Зарегистрирован: Чт янв 27, 2011 3:43 pm

Re: Очистка базы от накопившихся данных.

Сообщение densh » Чт фев 26, 2015 12:46 pm

Спасибо, Дмитрий. Сейчас сделаю импорт в графу ИНН. И отправлю базу Вам на почту.
densh
 
Сообщения: 41
Зарегистрирован: Чт окт 13, 2011 5:39 pm
Откуда: Киев

След.

Вернуться в Использование программы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

cron