Павел
Гость
|
|
« : 14-05-2008 12:58 » |
|
Доброго времени суток! Знаю Delphi, решил научится 1с, а то теперь специалисты нужны по 1с а мне работать хочется, книги пока нет, скоро куплю, пока возникла задача: составит отчет по типу: склад | наименование товара | сколько сегодня продано | сумма продажи | сколько осталось на складе | цена за одну единицу
и если можно, то время покупки, кто купил (контрагент) и на какую сумму. ПОЖАЛУЙСТА напишите как будет выглядеть модуль отчета т.е. какие запросы составлять, как в цикле их обрабатывать, в общем как можно подробнее. от этого зависит мой первый опыт написания сложного и дальнейшее понимание. Спасибо соратники программисты, надеюсь на помощь!
|
|
« Последнее редактирование: 19-05-2008 05:57 от Sel »
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #1 : 14-05-2008 20:37 » |
|
Интересно - вот если бы я тебя попросил составить такой же запрос для MS SQL (или Firebird - не важно) не указывая для какой именно БД это сделать - ты бы смог ответить?
|
|
|
Записан
|
|
|
|
Павел
Гость
|
|
« Ответ #2 : 15-05-2008 15:11 » |
|
Ссори) Бугалтерия 7.7 Торговля и склад 9.2 dbf
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #3 : 15-05-2008 17:42 » |
|
В этой конфе у тебя есть регистр ОстаткиТМЦ. Создаешь новый внешний отчет/обработку, в модуле формы выбираешь в меню Конструкторы/Запрос... На первой странице указываешь выбирать период в форме и дальше балуешься с указанным регистром (конструктор тебе сгенерит запрос, процедуру и таблицу вывода). Когда получишь какие-то конкретные результаты - возникнут конкретные вопросы. Пиши снова сюда
|
|
|
Записан
|
|
|
|
Павел
Гость
|
|
« Ответ #4 : 16-05-2008 12:20 » |
|
Спасибо) Разобрался! сделал по периодам, по складам. Следующий вопрос: А если отчет надо сохранить в файл или передать в базу данных на серве, как это сделать? Если не трудно то кодом или в файл или в базу на серв база mysql. Спасибо!
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #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
Модератор
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
Модератор
Offline
|
|
« Ответ #10 : 19-05-2008 19:12 » |
|
Круто, тогда опять вопрос: как узнать какой щас пользователь? Спасибо за ответы!
Если СокрЛП(ИмяПользователя()) = "КакоеТоИмя" Тогда ОткрытьФорму("Отчет",,"c:\obrabotka.ert"); //запуск самой обработки пишем в процедуре ПриОткрытии() обработки КонецЕсли;
|
|
|
Записан
|
Слабый пол силен в силу слабости сильного пола к слабому
|
|
|
Harry
Модератор
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
|
|
« Ответ #14 : 03-06-2008 19:08 » |
|
Павел, в данном случае нужно смотреть сам код процедуры "продажи" товара Если ты делаешь вывод о точке актуальности, то перенеси ее в удобное для тебя время, хотя я сильно сомневаюсь в ее виновности
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Harry
Модератор
Offline
|
|
« Ответ #15 : 06-06-2008 08:04 » |
|
Начнем с того: как выглядит это "нельзя"? Не проводятся расходные документы? Что пишет при этом? Какие продажные документы используются: РН, чек, расход на консигнацию, либо какой-то еще? Используемая конфигурация? В общем, надо больше исходных данных
|
|
« Последнее редактирование: 06-06-2008 08:06 от Harry »
|
Записан
|
Слабый пол силен в силу слабости сильного пола к слабому
|
|
|
Павел
Гость
|
|
« Ответ #16 : 06-06-2008 08:05 » |
|
Пишет что на складе 0 товара
|
|
|
Записан
|
|
|
|
Harry
Модератор
Offline
|
|
« Ответ #17 : 06-06-2008 08:07 » |
|
Понятно. Сравни даты и время приходной и расходной накладной. Не приходуются ли приходные накладные в конец дня?
|
|
|
Записан
|
Слабый пол силен в силу слабости сильного пола к слабому
|
|
|
Павел
Гость
|
|
« Ответ #18 : 06-06-2008 08:12 » |
|
Спасибо, я так и предполагал, как проверю отпишусь. Спасибо!
|
|
|
Записан
|
|
|
|
Павел
Гость
|
|
« Ответ #19 : 23-06-2008 20:47 » |
|
ДА все здорово, фигня оказалась в том что приходные заносятся в конец дня. Пока все было хорошо, но снова появилась проблема: Есть склад и несколько торговых точек, на торговые точки приноситс с товаром флэшка, на ней, через распределенныеИБ информация о приходе товар, его стоимость и т.п. Добавилась в базу новая торговая точка, и случилось так что на торговую точку А приходят цены точки Б, и наоборот, причем с другими точками все ок. Ответь те пожалуйста что такое могло произойти, как этого впредь избежать и главное как привести впорядок будущие приходы товара? Пока ситуацию держу под контролем путем экспорта/импорта через обычные файлы. Но надо наладить что было раньше. Сразу оговорюсь, я незнаю как и после чего это началось, т.к. у фирмы был спец, но его уволили (спецу было 50 лет), взяли нового но и он не может, блин ПОМОГИТЕ очень надо тока сам начал в этом разбираться но такие проблемы пока не решал, ПОМОГИТЕ пожалуйста. Не дайте с голоду умереть, если сделаю буду там типо на пол ставки прогером. Очень хорошее место и тама можно заодно научится всему ремеслу на конкретных проблемах. Тока на вас надежда, фиг больше где помогут. Спасибо за терпение и понимание)
|
|
|
Записан
|
|
|
|
Harry
Модератор
Offline
|
|
« Ответ #20 : 29-06-2008 14:14 » |
|
Они и должны приходить, база-то типа общая. Можно, конечно, убрать миграцию для справочника (в конфигурации, контекстное меню). Но это не выход, сам товар, я так понимаю, должен обмениваться. Хотедось бы знать, какие установки УРБД для баз? (Администрирование/Распределенная ИБ/Управление).
|
|
|
Записан
|
Слабый пол силен в силу слабости сильного пола к слабому
|
|
|
Kivals
|
|
« Ответ #21 : 29-06-2008 14:30 » |
|
Павел, проясни ситуацию: у тебя было несколько периферийных баз: X, Y, Z, ..., A и цены приходили как надо добавилась B - и на A стали приходить цены для B, а на B - цены для A ?
или у тебя была до сих пор только одна периферийная база и добавилась вторая?
Как хранятся цены? (напиши структуру объекта, в котором находятся цены) Я бы предположил что это подчиненный справочник для товаров, но недавно встретил товарищей, которые подобную инфу хранят в документах...
|
|
|
Записан
|
|
|
|
Павел
Гость
|
|
« Ответ #22 : 05-08-2008 20:03 » |
|
Всем ПРОСТИТЕ что долго не писал! Проблему решил так - первоначальные файлы обмена заново загрузил... все тьфу тьфу встало на свои места.
|
|
|
Записан
|
|
|
|
|