Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Помогите создать запрос.  (Прочитано 27995 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Павел
Гость
« : 14-05-2008 12:58 » 

Доброго времени суток!
Знаю Delphi, решил научится 1с, а то теперь специалисты нужны по 1с а мне работать хочется,  книги пока нет, скоро куплю, пока возникла задача:
составит отчет по типу:  склад | наименование товара | сколько сегодня продано | сумма продажи | сколько осталось на складе | цена за одну единицу

и если можно, то время покупки, кто купил (контрагент) и на какую сумму.
ПОЖАЛУЙСТА напишите как будет выглядеть модуль отчета т.е. какие запросы составлять, как в цикле их обрабатывать, в общем как можно подробнее. от этого зависит мой первый опыт написания сложного и дальнейшее понимание. Спасибо соратники программисты, надеюсь на помощь!
« Последнее редактирование: 19-05-2008 05:57 от Sel » Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 14-05-2008 20:37 » 

Интересно - вот если бы я тебя попросил составить такой же запрос для MS SQL (или Firebird - не важно) не указывая для какой именно БД это сделать - ты бы смог ответить? Ага
Записан
Павел
Гость
« Ответ #2 : 15-05-2008 15:11 » 

Ссори)   Бугалтерия 7.7 Торговля и склад 9.2 dbf
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 15-05-2008 17:42 » 

В этой конфе у тебя есть регистр ОстаткиТМЦ.
Создаешь новый внешний отчет/обработку, в модуле формы выбираешь в меню Конструкторы/Запрос...
На первой странице указываешь выбирать период в форме и дальше балуешься с указанным регистром (конструктор тебе сгенерит запрос, процедуру и таблицу вывода).
Когда получишь какие-то конкретные результаты - возникнут конкретные вопросы. Пиши снова сюда Улыбаюсь
Записан
Павел
Гость
« Ответ #4 : 16-05-2008 12:20 » 

Спасибо) Разобрался! сделал по периодам, по складам.
Следующий вопрос: 
А если отчет надо сохранить в файл или передать в базу данных на серве, как это сделать?
Если не трудно то кодом или в файл или в базу на серв база mysql.
Спасибо!
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 17-05-2008 09:45 » 

"Сохранить в файл" - понятие растяжимое...
Объект типа "Таблица" (который у тебя создается конструктором зароса и выводится на экран) имеет метод Записать(), в котором можно указать тип файла: 0 или ''MXL'' - формат 1C; 1 или ''XLS'' - формат Ms Excel; 2 или ''HTM'' или ''HTML'' - формат HTML; 3 или ''TXT'' - формат TXT.
Все прочие форматы (в частности XML) нужно реализовывать самостоятельно (возможно - с помощью сторонних компонент).
Доступ к БД в 1С чаще всего осуществляется через ADOBD:
Код:
СтрокаСоединения=Шаблон("driver={MySQL ODBC 3.51 Driver};server=[СерверБД];port=[ПортСервера];"+
  "database=[БазаДанных];uid=[ИмяПользователяБД];pwd=[ПарольБД]");
// Параметры server,port,uid,pwd можно опустить - будут использованы значения по умолчанию
DBConn=CreateObject("ADODB.Connection");
DBConn.Open(СтрокаСоединения);

DBCmd=CreateObject("ADODB.Command");
DBCmd.ActiveConnection=DBConn;

// Выполняем комманду обновления
DBCmd.CommandText="UPDATE table SET field1=value2 WHERE field2=value2";
DBCmd.Execute();

// Выполняем запрос с реультатами
DBCmd.CommandText="SELECT * FROM table";
RS=CreateObject("ADODB.Recordset");
RS.Open(DBCmd);
Пока (RS.EOF()=0) Цикл
Стр="";
Для И1=0 По (RS.Fields.Count-1) Цикл
Стр=Стр+СимволТабуляции+RS.Fields(И1).Value;
КонецЦикла;
Сообщить(Стр);
RS.MoveNext();
КонецЦикла;
Примечание: к сожалению не все типы, присутствующие ADODB поддерживаются в 1С. Потому иногда придется делать приведение типов в самом запросе, что-то типа:
SELECT field1::integer FROM ...
(синтаксис PostgreSQL - как в MySQL - не помню)
Записан
Павел
Гость
« Ответ #6 : 19-05-2008 05:54 » 

Спасибо! Понял! И, если можно), еще один вопросик: допустим создана обработка к примеру файлик test.ert на  диске C:
Как запустить 1с, выполнить эту обработку ну и закрыть 1с, надо чтобы автоматически, т.е. кликнули по ярлыку и забыли.
Спасибо, ссори если туплю.
Записан
Harry
Модератор

ua
Offline Offline

« Ответ #7 : 19-05-2008 06:01 » 

"C:\Program Files\1Cv77\BIN\1cv7.exe" ENTERPRISE /D\\Server\1CBases\Base /NName /PPass

Например такой bat-файлик. А запуск самой обработки вставить в процедуру ПриНачалеРаботыСистемы(), с условием для конкретного пользователя.
Записан

Слабый пол силен в силу слабости сильного пола к слабому
Павел
Гость
« Ответ #8 : 19-05-2008 06:07 » 

Круто, тогда опять вопрос: как узнать какой щас пользователь?
Спасибо за ответы!
Записан
Павел
Гость
« Ответ #9 : 19-05-2008 12:50 » 

В базу данных то понял как перекидывать, но на серваке,где сайт, закрыт внешний доступ к базе mysql,
придется через xml или excel,думаю буду через excel, а на сайте переводить его, если надо, в html страницу.
извините, нор следующий вопрос: как  работать с excel файлами?
как в них писать/читать из них?
Спасибо!
Записан
Harry
Модератор

ua
Offline Offline

« Ответ #10 : 19-05-2008 19:12 » 

Круто, тогда опять вопрос: как узнать какой щас пользователь?
Спасибо за ответы!


Если СокрЛП(ИмяПользователя()) = "КакоеТоИмя" Тогда
     ОткрытьФорму("Отчет",,"c:\obrabotka.ert");
     //запуск самой обработки пишем в процедуре ПриОткрытии() обработки
КонецЕсли;
Записан

Слабый пол силен в силу слабости сильного пола к слабому
Harry
Модератор

ua
Offline Offline

« Ответ #11 : 19-05-2008 19:20 » 

извините, нор следующий вопрос: как  работать с excel файлами?
как в них писать/читать из них?
Спасибо!

Например так:

Окно=СоздатьОбъект("Excel.Application");
Окно.visible=1;
Книги=Окно.WorkBooks;
Книга=Книги.Add();
Страница=Книга.WorkSheets(1);
ЯЧЕЙКА=Страница.Cells(1,3);
Ячейка.Value="Клиент: "+Клиент;
ЯЧЕЙКА=Страница.Cells(2,3);
Ячейка.Value="Проект: "+Проект;
ЯЧЕЙКА=Страница.Cells(3,3);
Записан

Слабый пол силен в силу слабости сильного пола к слабому
Павел
Гость
« Ответ #12 : 20-05-2008 14:41 » 

Спасибо! Очень рад, что помогли разобраться!
Записан
Павел
Гость
« Ответ #13 : 03-06-2008 16:52 » 

У меня снова вопрос, точнее проблема:
началась такая фигня: приходит товар его заносят, но продовать в этот же день, когда занесли нельзя.
С чем это может быыть связано, что могло произойти? и как этого избегать?  и как вернуть все на место главно?
Спасибо, ну извините, если может глупый и простецкий вопрос, ответте пожалуйста.
это что то с точкой актуальности?
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #14 : 03-06-2008 19:08 » 

Павел, в данном случае нужно смотреть сам код процедуры "продажи" товара
Если ты делаешь вывод о точке актуальности, то перенеси ее в удобное для тебя время, хотя я сильно сомневаюсь в ее виновности
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Harry
Модератор

ua
Offline Offline

« Ответ #15 : 06-06-2008 08:04 » 

Начнем с того: как выглядит это "нельзя"? Не проводятся расходные документы? Что пишет при этом?

Какие продажные документы используются: РН, чек, расход на консигнацию, либо какой-то еще? Используемая конфигурация?

В общем, надо больше исходных данных Улыбаюсь
« Последнее редактирование: 06-06-2008 08:06 от Harry » Записан

Слабый пол силен в силу слабости сильного пола к слабому
Павел
Гость
« Ответ #16 : 06-06-2008 08:05 » 

Пишет что на складе 0 товара
Записан
Harry
Модератор

ua
Offline Offline

« Ответ #17 : 06-06-2008 08:07 » 

Понятно. Сравни даты и время приходной и расходной накладной. Не приходуются ли приходные накладные в конец дня?
Записан

Слабый пол силен в силу слабости сильного пола к слабому
Павел
Гость
« Ответ #18 : 06-06-2008 08:12 » 

Спасибо, я так и предполагал,
как проверю отпишусь. Спасибо!
Записан
Павел
Гость
« Ответ #19 : 23-06-2008 20:47 » 

ДА все здорово, фигня оказалась в том что приходные заносятся в конец дня.
Пока все было хорошо, но снова появилась проблема:
Есть склад и несколько торговых точек, на торговые точки приноситс с товаром флэшка, на ней, через распределенныеИБ
информация о приходе товар, его стоимость и т.п. Добавилась в базу новая торговая точка, и случилось так что на торговую точку А приходят цены точки Б, и наоборот, причем с другими точками все ок.
Ответь те пожалуйста что такое могло произойти, как этого впредь избежать и главное как привести впорядок будущие приходы товара? Пока ситуацию держу под контролем путем экспорта/импорта через обычные файлы. Но надо наладить что было раньше.
Сразу оговорюсь, я незнаю как и после чего это началось, т.к. у фирмы был спец, но его уволили (спецу было 50 лет), взяли нового но и он не может,
блин ПОМОГИТЕ очень надо тока сам начал в этом разбираться но такие проблемы пока не решал, ПОМОГИТЕ пожалуйста. Не дайте с голоду умереть, если сделаю буду там типо на пол ставки прогером. Очень хорошее место и тама можно заодно научится всему ремеслу на конкретных проблемах. Тока на вас надежда, фиг больше где помогут.
Спасибо за терпение и понимание)


Записан
Harry
Модератор

ua
Offline Offline

« Ответ #20 : 29-06-2008 14:14 » 

Они и должны приходить, база-то типа общая. Можно, конечно, убрать миграцию для справочника (в конфигурации, контекстное меню). Но это не выход, сам товар, я так понимаю, должен обмениваться.
Хотедось бы знать, какие установки УРБД для баз? (Администрирование/Распределенная ИБ/Управление).
Записан

Слабый пол силен в силу слабости сильного пола к слабому
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #21 : 29-06-2008 14:30 » 

Павел, проясни ситуацию:
у тебя было несколько периферийных баз: X, Y, Z, ..., A и цены приходили как надо
добавилась B - и на A стали приходить цены для B, а на B - цены для A ?

или у тебя была до сих пор только одна периферийная база и добавилась вторая?

Как хранятся цены? (напиши структуру объекта, в котором находятся цены)
Я бы предположил что это подчиненный справочник для товаров, но недавно встретил товарищей, которые подобную инфу хранят в документах...
Записан
Павел
Гость
« Ответ #22 : 05-08-2008 20:03 » 

Всем ПРОСТИТЕ что долго не писал!
Проблему решил так - первоначальные файлы обмена заново загрузил... все тьфу тьфу встало на свои места.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines