|
Самописная конфигурация "Списки" | ☑ | ||
---|---|---|---|---|
0
kisobol
19.03.15
✎
05:25
|
Есть огромное желание попрактиковаться в создании конфигурации с нуля для собственных нужд.
Задача: Каждую неделю приходят файлы xls c данными людей (один xls - один человек), каждый файл открывается и из него копируется нужна информация "ФИО" и адрес в wordовский документ и отправляется по почте. Сейчас файлы хранятся по адресам в папочках, и это дело довольно сложно обрабатывать получать дополнительную информацию. Как планирую это дело автоматизировать: 1. Создать справочник "ЛЮДИ" в него внести реквизиты соответствующие данным из xls файла. 2. Обработкой загружать xls файлы - создавая элементы справочника, данные которые загруженные например 01.01.2015 будут в реквизите записаны что 10 человек от такого числа. 3. Создать документ в нем выбирать группу людей соответствующию заданному числу, распечатывать бланк + сохранять его в excel. 4. Написать отчеты которые будут нужны для анализа данных. Сейчас реализовал копирование из xls средствами вба, но нет анализа данных. Как можно доработать эту схему? |
|||
1
hawksib
19.03.15
✎
05:50
|
"например 01.01.2015 будут в реквизите записаны что 10 человек от такого числа"
че-то не понял, а не проще сделать 1 элемент - 1 человек, и наименование элемента ну пусть - фио? |
|||
2
kisobol
19.03.15
✎
07:10
|
Да 1 человек - 1 элемент. Пцц шуганты написал, сам не понял.
У элемента будет реквизит число по которому будет определятся принадлежность к группе. |
|||
3
kosts
19.03.15
✎
07:43
|
Мало понятно.
|
|||
4
ДенисЧ
19.03.15
✎
07:44
|
Нельзя с утра так напиваться...
|
|||
5
patria0muerte
19.03.15
✎
07:52
|
(1) А че хочешь автоматизировать то? Хранение людей? Морг чтоль автоматизируешь?
А по делу - да, справочник "ФизическиеЛица", документ "КакойТоДокумент" у которого дата = дате прихода файла... и прочую информацию из файла запихиваешь в документ. Ну и там в регистр какой все это писать, чтобы все как у людей было.... |
|||
6
Адский плющ
19.03.15
✎
07:56
|
Стандартная картина. Вместо четкого представления о функциональности будущей программы в голове сумбур. И с этим сумбуром сразу лезем в проектирование структуры БД.
Впрочем, все так начинали. А некоторые успешно продолжают. |
|||
7
hawksib
19.03.15
✎
08:08
|
(5) вообще ниче не хочу автоматизировать, не знаю даже какая отчетность нужна, а автору темы, уже зная какие ему отчеты надо, мог бы, возможно, че нибудь со структурой БД подсказать, а так у (5) в принципе правильная мысль
|
|||
8
patria0muerte
19.03.15
✎
08:23
|
(7) Блин, (5) к (0) было... ) Но суть не меняется:
"Нужно больше информации" (с) |
|||
9
kisobol
19.03.15
✎
08:51
|
Главное это автоматическое формирование печатной формы документа со списком людей, а остальное это побочка.
Например отчет - Нужны данные по конкретному городу откуда человек. patria0muerte, а зачем информацию из файла запихивать к документ, если нам нужно создавать |
|||
10
kisobol
19.03.15
✎
08:57
|
Или заместо обработки загрузки использовать документ для загрузки списков?
|
|||
11
vicof
19.03.15
✎
09:17
|
(0) Прочитал как "Самописная конфигурация "Сиськи"
|
|||
12
patria0muerte
19.03.15
✎
09:26
|
(9) Ну так тебя и спрашивают, что вообще за информация то? Если информация о физлицах в файлах статичная и неизменяемая, тогда документ нафиг не упал. Если же по каждому физлицу в файле информация всегда разная, т.е. изменяемая в течении времени, то нужен документ, который будет фиксировать данные изменения.
Т.е. если к тебе в каждом документе приходит: Вася, Рязань и из этой Рязани наш Вася никуда деваться не собирается, то пихай Рязань (тобишь Город) в реквизит справочника "Физические лица" Ежели Вася, и прочие лица - путешественники и файлы приходят типа: Вася, Рязань Вася, Мариуполь Вася, БаденБаден ,то Вася у тебя остается в справочнике ФизЛиц, а Рязань с БаденБаденом/Мариуполем пихаешь в документ, который тебе и зафиксирует, что 01.01.2014 Вася был в Рязани, а потом 05.05.2014 свалил в Мариуполь нафиг от такой жизни... Вот как-то так. |
|||
13
Dmitriy_76
19.03.15
✎
09:29
|
регистр еще не предлагали ?
|
|||
14
kisobol
19.03.15
✎
09:48
|
Инфа по физлицам всегда статическая и не повторяется.
Получается оптимально записывать физлиц в справочник, и создавать документом печатную форму, чтобы было удобно просматривать по датам документы и при необходимости печатать вновь. |
|||
15
kosts
19.03.15
✎
09:55
|
(14) Статичную информацию пиши в справочник. Изменяемую в регистр. Изменения в регистр вноси документом через движения.
Печать отчетов на основе регистров. |
|||
16
hawksib
19.03.15
✎
13:24
|
(14) записывай информацию в справочник, и создавай печатную форму обработкой, (15) он жеж вроде только что сказал, что инфа статическая
|
|||
17
DexterMorgan
19.03.15
✎
13:32
|
Создать справочник "ЛЮДИ"
КрасавчEг! |
|||
18
DexterMorgan
19.03.15
✎
13:32
|
Может лучше "ЧЕЛОВЕКИ"?
|
|||
19
13_Mult
19.03.15
✎
13:35
|
(11) Гыыы, мне тоже глаз "замылило". ))
|
|||
20
kisobol
20.03.15
✎
05:01
|
&НаКлиенте
Процедура ПутьКФайлуНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; Режим = РежимДиалогаВыбораФайла.Открытие; ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим); ДиалогОткрытияФайла.МножественныйВыбор = Истина; ДиалогОткрытияФайла.Заголовок = "Выберите файлы"; Если ДиалогОткрытияФайла.Выбрать() Тогда МассивФайлов = ДиалогОткрытияФайла.ВыбранныеФайлы; Для Каждого ИмяФайла Из МассивФайлов Цикл ВыбФайл = Новый Файл(ИмяФайла); Сообщить(ИмяФайла + НСтр("ru = '; Размер = '; en = '; Size = '") + ВыбФайл.Размер()); КонецЦикла; Иначе Предупреждение(НСтр("ru = 'Файл(ы) не выбран!'; en = 'File(s) not selected!'")); КонецЕсли; КонецПроцедуры &НаКлиенте Процедура ЗагрузитьСоотечественников(Команда) ЗаполнениеСправочника(); КонецПроцедуры &НаСервере Процедура ЗаполнениеСправочника() COMОбъект = ПолучитьCOMОбъект(ПутьКФайлу); ЕКСЕЛЬНомерАнкеты = COMОбъект.Sheets(1).Cells(5,2).Value; ЕКСЕЛЬФамилия = COMОбъект.Sheets(1).Cells(7,2).Value; ЕКСЕЛЬИмя = COMОбъект.Sheets(1).Cells(9,2).Value; ЕКСЕЛЬОтчество = COMОбъект.Sheets(1).Cells(10,2).Value; СправочникОбъект = Справочники.Соотечественники.СоздатьЭлемент(); СправочникОбъект.НоменАнкеты = ЕКСЕЛЬНомерАнкеты; СправочникОбъект.Фамилия = ЕКСЕЛЬФамилия; СправочникОбъект.Имя = ЕКСЕЛЬИмя; СправочникОбъект.Отчество = ЕКСЕЛЬОтчество; СправочникОбъект.Наименование = СправочникОбъект.Фамилия + " " + СправочникОбъект.Имя + " " + СправочникОбъект.Отчество; СправочникОбъект.Записать(); КонецПроцедуры Не могу понять как в цикле забирать данные из ячеек екселя и формировать новые записи справчоника, гуру помогите жлст %) |
|||
21
kisobol
20.03.15
✎
05:03
|
Получилось в другой обработке с единичной загрузкой ексель файла.
|
|||
22
kisobol
20.03.15
✎
07:38
|
Вот так получилось.
&НаКлиенте Процедура ПутьКФайлуНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) ЭКСПОРТ СтандартнаяОбработка = Ложь; Режим = РежимДиалогаВыбораФайла.Открытие; ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим); ДиалогОткрытияФайла.МножественныйВыбор = Истина; ДиалогОткрытияФайла.Заголовок = "Выберите файлы"; Если ДиалогОткрытияФайла.Выбрать() Тогда МассивФайлов = ДиалогОткрытияФайла.ВыбранныеФайлы; Режим = РежимДиалогаВопрос.ДаНет; Ответ = Вопрос(НСтр("ru = 'Добавить выбранные анкеты в справочник?'"), Режим, 0); Если Ответ = КодВозвратаДиалога.Нет Тогда Возврат; Иначе КонецЕсли; Для Каждого ИмяФайла Из МассивФайлов Цикл ВыбФайл = Новый Файл(ИмяФайла); ПутьКФайлу = ВыбФайл.ПолноеИмя; ЗаполнениеСправочника(); КонецЦикла; Иначе Предупреждение(НСтр("ru = 'Файл(ы) не выбран!'; en = 'File(s) not selected!'")); КонецЕсли; КонецПроцедуры &НаСервере Процедура ЗаполнениеСправочника() COMОбъект = ПолучитьCOMОбъект(ПутьКФайлу); ЕКСЕЛЬНомерАнкеты = COMОбъект.Sheets(1).Cells(5,2).Value; ЕКСЕЛЬФамилия = COMОбъект.Sheets(1).Cells(7,2).Value; ЕКСЕЛЬИмя = COMОбъект.Sheets(1).Cells(9,2).Value; ЕКСЕЛЬОтчество = COMОбъект.Sheets(1).Cells(10,2).Value; СправочникОбъект = Справочники.Соотечественники.СоздатьЭлемент(); СправочникОбъект.НоменАнкеты = ЕКСЕЛЬНомерАнкеты; СправочникОбъект.Фамилия = ЕКСЕЛЬФамилия; СправочникОбъект.Имя = ЕКСЕЛЬИмя; СправочникОбъект.Отчество = ЕКСЕЛЬОтчество; СправочникОбъект.Наименование = СправочникОбъект.Фамилия + " " + СправочникОбъект.Имя + " " + СправочникОбъект.Отчество; СправочникОбъект.Записать(); КонецПроцедуры |
|||
23
фобка
20.03.15
✎
07:47
|
(22) где цикл?
|
|||
24
kisobol
20.03.15
✎
08:50
|
фобка
Для Каждого ИмяФайла Из МассивФайлов Цикл ВыбФайл = Новый Файл(ИмяФайла); ПутьКФайлу = ВыбФайл.ПолноеИмя; ЗаполнениеСправочника(); КонецЦикла; Другая темка как заполнить табличную часть документа? &НаКлиенте Процедура Заполнпо2(Команда) Заполнпо2НаСервере(); КонецПроцедуры &НаСервере Процедура Заполнпо2НаСервере() Выборка = Справочники.Соотечественники.Выбрать(); Пока Выборка.Следующий() Цикл //тут я проверяю соответствует ли реквизит ДАТА поступления Если ДатаПриходаАнкет = Выборка.ДатаПоступления Тогда //а вот так заполнить из этой выборки справочника табличную часть документа этого? //Сообщить(Выборка); КонецЕсли; КонецЦикла; КонецПроцедуры |
|||
25
Deon
20.03.15
✎
09:00
|
(11) Запишусь в бета-тестеры
|
|||
26
kisobol
20.03.15
✎
09:03
|
Deon выпиваешь с утра?
|
|||
27
anatoly
20.03.15
✎
09:45
|
(6) в любом случае опыт будет полезный. но конечно надо для начала все расписать на бумаге.
я пару лет назад (полгода не работал) писал чисто для себя конфу с нуля. вроде все продумал - но все равно в процессе 2 раза серьезно переделывал структуру. считаю что опыт хороший приобрел. и этой конфой до сих пор пользуюсь. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |