Компьютерное железо и софт. Интернет.
автор Zveruga Чт 09 Мар 2017, 02:56
С++ и другие высокоразвитые языки программирования такие развитые для того, чтобы управлять сложными функциональными устройствами, такие как микросхемы.
1С же, это программирование таких функциональных устройств как человеки.
Наверное слышали, что такое бизнес-процессы? Вот это и есть алгоритмы поведения человеков.
Недооценивайте силу знания 1С.
Не каждый программист может стать специалистом 1С, так как для этого нужно знать ещё очень и очень много по управлению человеками.
Zveruga- Сообщения : 10901
Возраст : 44
Откуда : из леса
-
Re: Компьютерное железо и софт. Интернет.
автор Вит Чт 09 Мар 2017, 05:05
пральна! 1С это бухгалтерия, а для этого повышенный интеллект нужен, а не просто програмёр...Zveruga пишет:Не каждый программист может стать специалистом 1С
Вит- Друг
- Сообщения : 15867
Возраст : 58
Откуда : Франкония-Кант
-
Re: Компьютерное железо и софт. Интернет.
автор F5A-F5A Чт 09 Мар 2017, 06:28
Для мене программирование конечно темный лес... Но слова бизнес-процесс я де-то слышал...Zveruga пишет:Я сейчас очень многих тут удивлю силой языка программирования 1С, с которым никакой С++ и рядом не стоял.
С++ и другие высокоразвитые языки программирования такие развитые для того, чтобы управлять сложными функциональными устройствами, такие как микросхемы.
1С же, это программирование таких функциональных устройств как человеки.
Наверное слышали, что такое бизнес-процессы? Вот это и есть алгоритмы поведения человеков.
Недооценивайте силу знания 1С.
Не каждый программист может стать специалистом 1С, так как для этого нужно знать ещё очень и очень много по управлению человеками.
А-а-а-а! Вспомнил
CAA-RADE - такой себе API под под продукты Dassault Systems.
Там тоже много говорят про проектирование бизнес-процессов.
Последний раз редактировалось: F5A-F5A (Чт 09 Мар 2017, 06:45), всего редактировалось 1 раз(а)
F5A-F5A- Сообщения : 9766
Откуда : Северное Приазовье
-
Re: Компьютерное железо и софт. Интернет.
автор F5A-F5A Чт 09 Мар 2017, 06:31
Та не наверное. Вернее - не только
Бухгалтерия - это просто конфигурация нацарапанная на 1С. Так-то на нем(1С) чего только только не пишут... Вроде уже и PLM-PDM нацарапали..
F5A-F5A- Сообщения : 9766
Откуда : Северное Приазовье
-
Re: Компьютерное железо и софт. Интернет.
автор Вит Чт 09 Мар 2017, 06:38
кароч лажа полнаяF5A-F5A пишет:Так-то на нем(1С) чего только только не пишут...
Вит- Друг
- Сообщения : 15867
Возраст : 58
Откуда : Франкония-Кант
-
Re: Компьютерное железо и софт. Интернет.
автор prototype Чт 09 Мар 2017, 08:35
Угу. Я в прошлом году пошел было работать в контору где все организовано через ... 1С, а не то, что вы подумали. Но по сути - через то, что вы подумали. Меня хватило на 3 недели до написания заявления на увольнение, да еще 2 отработал "по соглашению сторон". Мрак беспросветный. Люди думают, что какое-то PLM-PDM может заменить наличие грамотного и мотивированного среднего звена. А мотивирование работников идет через бесконечные, бессмысленные и беспощадные "семинары по улучшению качества работы"...F5A-F5A пишет:Вроде уже и PLM-PDM нацарапали..
По итогу - "Внутри собаки жуть и мрак" (с)
prototype- Сообщения : 14150
Возраст : 58
Откуда : СССР, территория временно оккупированная НАТО
-
Re: Компьютерное железо и софт. Интернет.
автор Zveruga Чт 09 Мар 2017, 22:47
Нет Вит. Нет и ещё раз нет!Вит пишет:1С это бухгалтерия
1С это не только бухгалтерский учёт, но и оперативный учёт, и планово-экономический учёт, и финансовый учёт бюджетов. А самое главное 1С это документооборот на предприятии.
А документооборот это движение информации между функциональными устройствами системы. Также как пакеты информации путешествуют в процессоре, также документы путешествуют в предприятии. Только функциональными устройствами являются люди.
Начинала 1С с бухгалтерского учёта, но этого оказалось мало.
Zveruga- Сообщения : 10901
Возраст : 44
Откуда : из леса
-
Re: Компьютерное железо и софт. Интернет.
автор Zveruga Чт 09 Мар 2017, 22:57
А сам язык программирования этого всего-лишь инструмент для реализации задачи. Если бы мне предложили решить задачу автоматизации учёта предприятия на С++ и на 1С, я бы выбрал 1С. Потому что он удобнее, потому что он заточен для этого. А значит 1С лучше чем С++ для решения задач автоматизации человеческой деятельности в целях получения прибыли.
А вот если бы мне предложили автоматизировать работу машин на предприятии, я конечно же выбрал бы другой язык программирования, потому что другие языки заточены для управления машинами.
Zveruga- Сообщения : 10901
Возраст : 44
Откуда : из леса
-
Re: Компьютерное железо и софт. Интернет.
автор Zveruga Чт 09 Мар 2017, 23:04
Галактика в этом плане лучше. Там хоть поддержка отечественная. Но 1С уже начала конкурировать с Галактикой, как когда-то конкурировала с Парусом в бухучёте.
При наличии штата программистов 1С можно создать что угодно для управления людьми на предприятии. Но самое главное конкурентное преимущество в том, что спецов по 1С на рынке больше. А значит их можно увольнять и искать новых в случае чего.
Zveruga- Сообщения : 10901
Возраст : 44
Откуда : из леса
-
Re: Компьютерное железо и софт. Интернет.
автор N-azu Чт 09 Мар 2017, 23:14
Галактика - это лютый песец. для меня как для пользователя 1С была гораздо более юзабельна и менее глюкаваZveruga пишет:Реальными конкурентами в этом плане являются такие системы как Галактика
N-azu- Сообщения : 11509
Возраст : 38
Откуда : ДНР-Россия
-
Re: Компьютерное железо и софт. Интернет.
автор Zveruga Чт 09 Мар 2017, 23:32
Есть одно важное отличие 1С от серьёзных импортных систем. У неё наверное никогда не будет своей системы проектирования и моделирования эксплуатации изделия. Но 1С решает этот вопрос в сотрудничестве с другими разработчиками CAD систем путём интеграции их решений. Например с Компас-График.F5A-F5A пишет:Вроде уже и PLM-PDM нацарапали
Zveruga- Сообщения : 10901
Возраст : 44
Откуда : из леса
-
Re: Компьютерное железо и софт. Интернет.
автор добрый нуб Чт 09 Мар 2017, 23:40
Правильно. Архитектура метаданных 1с сразу заточена на решение конкретной задачи:Zveruga пишет:Если бы мне предложили решить задачу автоматизации учёта предприятия на С++ и на 1С, я бы выбрал 1С
-планы счетов для бухучета.
-регистры расчета для зарплаты
-бизнес-процессы для регламентированного движения документов, их утверждения, поэтапного согласования
-регистры накопления для оперативного учёта.
и т.д.
Сама платформа заточена для удобной реализации решения и встроенный язык программирования на русском.
Но у 1С есть и слабое место - это быстродействие. Когда я этим занимался, для решения, например, больших матриц с линейными уравнениями приходилось собирать данные средствами 1С, за тем передавать в специальную програмулину написанную на С++ в ней выполнять решение уравнений, и лишь после расчета полученные данные передавать обратно в 1С для формирования движений (проводок, записей в регистры и т.д.)
А так да, 1С на сегодняшний день обладает 92% рынка учетно-управленческих программ, да и банально дешевле она чем, например, SAP или Axapta, специалистов кардинально больше.
добрый нуб- Сообщения : 4097
Возраст : 48
Откуда : Краснодар
-
Re: Компьютерное железо и софт. Интернет.
автор Zveruga Чт 09 Мар 2017, 23:45
Я думаю этот вопрос они решат только в версии 9.0. Где на мой взгляд должна появиться компиляция.добрый нуб пишет:Но у 1С есть и слабое место - это быстродействие.
Zveruga- Сообщения : 10901
Возраст : 44
Откуда : из леса
-
Re: Компьютерное железо и софт. Интернет.
автор добрый нуб Чт 09 Мар 2017, 23:51
Короче, не смотря на относительную дешивизну 1с, фин.директору пришлось на пальцах объяснять, что внедрить 1с УПП будет стоить ~35 млн рублей на его предприятии + соответствующее сопровождение. А продолжать сопровождать аксапту получается всё равно дешевле и меньше кровавых гемороев связанных с внедрением новой системы.
добрый нуб- Сообщения : 4097
Возраст : 48
Откуда : Краснодар
-
Re: Компьютерное железо и софт. Интернет.
автор Zveruga Чт 09 Мар 2017, 23:55
Например санкции.
Zveruga- Сообщения : 10901
Возраст : 44
Откуда : из леса
-
Re: Компьютерное железо и софт. Интернет.
автор добрый нуб Чт 09 Мар 2017, 23:55
Они уже 10 лет не могут решить этот вопрос. Сейчас у 1С последний загон для оптимизации быстродействия - это управляемые формы. Таковые геморно настраиваются, нужно жестко разграничивать процессы, которые запускаются на сервере и на клиенте, а на выходе лишь экономия сетевого трафика. Но сама платформа как тормозила так и продолжает тормозить.Zveruga пишет:Я думаю этот вопрос они решат только в версии 9.0. Где на мой взгляд должна появиться компиляция.добрый нуб пишет:Но у 1С есть и слабое место - это быстродействие.
добрый нуб- Сообщения : 4097
Возраст : 48
Откуда : Краснодар
-
Re: Компьютерное железо и софт. Интернет.
автор добрый нуб Чт 09 Мар 2017, 23:59
Вряд ли...Zveruga пишет:Например санкции.
Насколько я знаю, типовая поддержка у аксапты и прочих иностранцев и так не очень, в отличии от 1С. Там вообще никто не заморачивается на изменениях в российском законодательстве. Иностранные программы напоминают больше считалки с большими возможностями. 1С (по крайней мере) типовые конфигурации на поддержке жёстко заточены под рос. реалии и законодательство.
добрый нуб- Сообщения : 4097
Возраст : 48
Откуда : Краснодар
-
Софт, вопросы по нему
автор Zveruga Пт 10 Мар 2017, 00:11
Жажда прибыли заставит их это сделать. Они окучивают рынок снизу, идут от малых предприятий к большим. И программа потому становится всё сложней. Затык с производительностью вынудит их решить проблему.добрый нуб пишет:Они уже 10 лет не могут решить этот вопрос.
Zveruga- Сообщения : 10901
Возраст : 44
Откуда : из леса
-
Re: Компьютерное железо и софт. Интернет.
автор F5A-F5A Пт 10 Мар 2017, 06:10
Так оно исторически так и было. Системы PLM\PDM\ERP - писались оторвано. А потом - разными костылями прикручивались к тому чего-надо...Zveruga пишет:Есть одно важное отличие 1С от серьёзных импортных систем. У неё наверное никогда не будет своей системы проектирования и моделирования эксплуатации изделия. Но 1С решает этот вопрос в сотрудничестве с другими разработчиками CAD систем путём интеграции их решений. Например с Компас-График.F5A-F5A пишет:Вроде уже и PLM-PDM нацарапали
Аппиус
http://www.appius.ru
Последний раз редактировалось: F5A-F5A (Пт 10 Мар 2017, 06:17), всего редактировалось 1 раз(а)
F5A-F5A- Сообщения : 9766
Откуда : Северное Приазовье
-
Re: Компьютерное железо и софт. Интернет.
автор F5A-F5A Пт 10 Мар 2017, 06:14
С подключением BLAS библиотек???Zveruga пишет:Я думаю этот вопрос они решат только в версии 9.0. Где на мой взгляд должна появиться компиляция.добрый нуб пишет:Но у 1С есть и слабое место - это быстродействие.
F5A-F5A- Сообщения : 9766
Откуда : Северное Приазовье
-
Re: Компьютерное железо и софт. Интернет.
автор Sin Пт 10 Мар 2017, 09:11
Sin- Неисправимый нытик
- Сообщения : 22846
-
Re: Компьютерное железо и софт. Интернет.
автор sabaca Пт 10 Мар 2017, 10:38
Пф-ф-ф...Zveruga пишет:языка программирования 1С
sabaca- аналитег
- Сообщения : 5669
Откуда : Самара
-
Re: Компьютерное железо и софт. Интернет.
автор Racoon Пт 10 Мар 2017, 10:52
приведи пример программы на 1С.
А то у нас тоже на один машзавод набирали программистов, оказалась за 800 грн нужно мышкой датчики на карте расставлять и подписывать.
Racoon- Сообщения : 76688
Откуда : Море Спокойствия
-
Re: Компьютерное железо и софт. Интернет.
автор Zveruga Пт 10 Мар 2017, 11:51
Zveruga- Сообщения : 10901
Возраст : 44
Откуда : из леса
-
Re: Компьютерное железо и софт. Интернет.
автор Zveruga Пт 10 Мар 2017, 12:02
- Спойлер:
- Код:
Процедура Сформировать()
// Проверим на ошибки
Если КонДата > КонецРассчитанногоПериодаБИ() Тогда
Предупреждение("Дата отчёта выходит за пределы рассчитанного периода бухгалтерских итогов.");
Возврат;
КонецЕсли;
ЕстьВыбранныйВидЛесоматериала = 0;
Для А=1 По ВыбВидыЛесоматериалов.РазмерСписка() Цикл
Если ВыбВидыЛесоматериалов.Пометка(А) = 1 Тогда
ЕстьВыбранныйВидЛесоматериала = 1;
Прервать;
КонецЕсли;
КонецЦикла;
Если ЕстьВыбранныйВидЛесоматериала = 0 Тогда
Предупреждение("Необходимо выбрать хотя бы один вид лесоматериала.");
Возврат;
КонецЕсли;
// Заполним начальные параметры
ВидыСортов = СоздатьОбъект("СписокЗначений");
Для А=1 По ВыбСорта.РазмерСписка() Цикл
Если ВыбСорта.Пометка(А) = 1 Тогда
Представление = "";
Сорт = ВыбСорта.ПолучитьЗначение(А, Представление);
Если Сорт = Перечисление.Сорт.ПервыйВторой Тогда
Представление = "12С";
ИначеЕсли Сорт = Перечисление.Сорт.ПервыйТретий Тогда
Представление = "13С";
ИначеЕсли Сорт = Перечисление.Сорт.Третий Тогда
Представление = "3С";
ИначеЕсли Сорт = Перечисление.Сорт.ТретийЧетвёртый Тогда
Представление = "34С";
ИначеЕсли Сорт = Перечисление.Сорт.БезСорта Тогда
Представление = "0С";
ИначеЕсли Сорт = Перечисление.Сорт.Пятый Тогда
Представление = "5С";
КонецЕсли;
ВидыСортов.ДобавитьЗначение(Сорт, Представление);
КонецЕсли;
КонецЦикла;
ВидыДлин = ПолучитьСписокВидов(ВыбДлины);
ВидыВлажности = ПолучитьСписокВидов(ВыбВлажность);
ВидыДиаметров = ПолучитьСписокВидов(ВыбДиаметры);
ВидыТолщинШирин = ПолучитьСписокВидов(ВыбТолщинаШирина);
ВидыЛесоматериалов = ПолучитьСписокВидов(ВыбВидыЛесоматериалов);
ВыбСклады.Выгрузить(МестаХранения);
Расшифровка = СоздатьОбъект("СписокЗначений");
ИмяФайла = КаталогИБ()+"ExtForms\Отчет по остаткам лесоматериалов.ert";
Расшифровка.Установить("Отчет", ИмяФайла);
Расшифровка.Установить("Обновить", 1);
Расшифровка.Установить("Дата", КонДата);
Расшифровка.Установить("МестаХранения", МестаХранения);
Расшифровка.Установить("ВидыЛесоматериалов", ВидыЛесоматериалов);
Расшифровка.Установить("ВидыДлин", ВидыДлин);
Расшифровка.Установить("ВидыСортов", ВидыСортов);
Расшифровка.Установить("ВидыДиаметров", ВидыДиаметров);
Расшифровка.Установить("ВидыТолщинШирин", ВидыТолщинШирин);
Расшифровка.Установить("ВидыВлажности", ВидыВлажности);
Расшифровка.Установить("ИтогиПоСкладам", ИтогиПоСкладам);
Расшифровка.Установить("ОтрицательныеОстатки", ОтрицательныеОстатки);
Расшифровка.Установить("ВключатьЛесоматериалы", ВключатьЛесоматериалы);
Расшифровка.Установить("ИсключатьЛесоматериалы", ИсключатьЛесоматериалы);
КолонокВлажности = ВидыВлажности.РазмерСписка();
Если КолонокВлажности = 0 Тогда
КолонокВлажности = 1;
БезВлажности = 1;
Иначе
БезВлажности = 0;
КонецЕсли;
КолонокДлин = ВидыДлин.РазмерСписка();
Если КолонокДлин = 0 Тогда
КолонокДлин = 1;
БезДлин = 1;
Иначе
БезДлин = 0;
КонецЕсли;
КолонокСортов = ВидыСортов.РазмерСписка();
Если КолонокСортов = 0 Тогда
КолонокСортов = 1;
БезСортов = 1;
Иначе
БезСортов = 0;
КонецЕсли;
Если КолонокДлин = 1 Тогда
ВыводитьВсегоПоВлажности = 0;
Иначе
ВыводитьВсегоПоВлажности = 1;
КонецЕсли;
Если КолонокСортов = 1 Тогда
ВыводитьВсегоПоДлине = 0;
Иначе
ВыводитьВсегоПоДлине = 1;
КонецЕсли;
Если КолонокВлажности = 1 Тогда
ВыводитьИтого = 0;
Иначе
ВыводитьИтого = 1;
КонецЕсли;
ТабЛесоматериала = СоздатьОбъект("ТаблицаЗначений");
ТабЛесоматериала.НоваяКолонка("МестоХранения");
ТабЛесоматериала.НоваяКолонка("ВидЛесоматериала");
ТабЛесоматериала.НоваяКолонка("ТолщинаНачальныйДиаметр");
ТабЛесоматериала.НоваяКолонка("ШиринаКонечныйДиаметр");
ТабЛесоматериала.НоваяКолонка("Сырой1_0С");
ТабЛесоматериала.НоваяКолонка("Сырой1_12С");
ТабЛесоматериала.НоваяКолонка("Сырой1_13С");
ТабЛесоматериала.НоваяКолонка("Сырой1_3С");
ТабЛесоматериала.НоваяКолонка("Сырой1_34С");
ТабЛесоматериала.НоваяКолонка("Сырой1_5С");
ТабЛесоматериала.НоваяКолонка("Сырой3_0С");
ТабЛесоматериала.НоваяКолонка("Сырой3_12С");
ТабЛесоматериала.НоваяКолонка("Сырой3_13С");
ТабЛесоматериала.НоваяКолонка("Сырой3_3С");
ТабЛесоматериала.НоваяКолонка("Сырой3_34С");
ТабЛесоматериала.НоваяКолонка("Сырой3_5С");
ТабЛесоматериала.НоваяКолонка("Сырой4_0С");
ТабЛесоматериала.НоваяКолонка("Сырой4_12С");
ТабЛесоматериала.НоваяКолонка("Сырой4_13С");
ТабЛесоматериала.НоваяКолонка("Сырой4_3С");
ТабЛесоматериала.НоваяКолонка("Сырой4_34С");
ТабЛесоматериала.НоваяКолонка("Сырой4_5С");
ТабЛесоматериала.НоваяКолонка("Сырой6_0С");
ТабЛесоматериала.НоваяКолонка("Сырой6_12С");
ТабЛесоматериала.НоваяКолонка("Сырой6_13С");
ТабЛесоматериала.НоваяКолонка("Сырой6_3С");
ТабЛесоматериала.НоваяКолонка("Сырой6_34С");
ТабЛесоматериала.НоваяКолонка("Сырой6_5С");
ТабЛесоматериала.НоваяКолонка("Сухой1_0С");
ТабЛесоматериала.НоваяКолонка("Сухой1_12С");
ТабЛесоматериала.НоваяКолонка("Сухой1_13С");
ТабЛесоматериала.НоваяКолонка("Сухой1_3С");
ТабЛесоматериала.НоваяКолонка("Сухой1_34С");
ТабЛесоматериала.НоваяКолонка("Сухой1_5С");
ТабЛесоматериала.НоваяКолонка("Сухой3_0С");
ТабЛесоматериала.НоваяКолонка("Сухой3_12С");
ТабЛесоматериала.НоваяКолонка("Сухой3_13С");
ТабЛесоматериала.НоваяКолонка("Сухой3_3С");
ТабЛесоматериала.НоваяКолонка("Сухой3_34С");
ТабЛесоматериала.НоваяКолонка("Сухой3_5С");
ТабЛесоматериала.НоваяКолонка("Сухой4_0С");
ТабЛесоматериала.НоваяКолонка("Сухой4_12С");
ТабЛесоматериала.НоваяКолонка("Сухой4_13С");
ТабЛесоматериала.НоваяКолонка("Сухой4_3С");
ТабЛесоматериала.НоваяКолонка("Сухой4_34С");
ТабЛесоматериала.НоваяКолонка("Сухой4_5С");
ТабЛесоматериала.НоваяКолонка("Сухой6_0С");
ТабЛесоматериала.НоваяКолонка("Сухой6_12С");
ТабЛесоматериала.НоваяКолонка("Сухой6_13С");
ТабЛесоматериала.НоваяКолонка("Сухой6_3С");
ТабЛесоматериала.НоваяКолонка("Сухой6_34С");
ТабЛесоматериала.НоваяКолонка("Сухой6_5С");
ТабЛесоматериала.НоваяКолонка("Сырой1_Всего");
ТабЛесоматериала.НоваяКолонка("Сырой3_Всего");
ТабЛесоматериала.НоваяКолонка("Сырой4_Всего");
ТабЛесоматериала.НоваяКолонка("Сырой6_Всего");
ТабЛесоматериала.НоваяКолонка("Сухой1_Всего");
ТабЛесоматериала.НоваяКолонка("Сухой3_Всего");
ТабЛесоматериала.НоваяКолонка("Сухой4_Всего");
ТабЛесоматериала.НоваяКолонка("Сухой6_Всего");
ТабЛесоматериала.НоваяКолонка("СыройВсего_0С");
ТабЛесоматериала.НоваяКолонка("СыройВсего_12С");
ТабЛесоматериала.НоваяКолонка("СыройВсего_13С");
ТабЛесоматериала.НоваяКолонка("СыройВсего_3С");
ТабЛесоматериала.НоваяКолонка("СыройВсего_34С");
ТабЛесоматериала.НоваяКолонка("СыройВсего_5С");
ТабЛесоматериала.НоваяКолонка("СухойВсего_0С");
ТабЛесоматериала.НоваяКолонка("СухойВсего_12С");
ТабЛесоматериала.НоваяКолонка("СухойВсего_13С");
ТабЛесоматериала.НоваяКолонка("СухойВсего_3С");
ТабЛесоматериала.НоваяКолонка("СухойВсего_34С");
ТабЛесоматериала.НоваяКолонка("СухойВсего_5С");
ТабЛесоматериала.НоваяКолонка("СыройВсего_Всего");
ТабЛесоматериала.НоваяКолонка("СухойВсего_Всего");
БухИтНоменклатура = СоздатьОбъект("БухгалтерскиеИтоги");
БухИтМатериалы = СоздатьОбъект("БухгалтерскиеИтоги");
Если МестаХранения.РазмерСписка() > 0 Тогда
Если ИтогиПоСкладам = 0 Тогда
БухИтНоменклатура.ИспользоватьСубконто(ВидыСубконто.МестаХранения, МестаХранения, 2);
БухИтМатериалы.ИспользоватьСубконто(ВидыСубконто.МестаХранения, МестаХранения, 2);
Иначе
БухИтНоменклатура.ИспользоватьСубконто(ВидыСубконто.МестаХранения, МестаХранения, 1);
БухИтМатериалы.ИспользоватьСубконто(ВидыСубконто.МестаХранения, МестаХранения, 1);
КонецЕсли;
Иначе
БухИтНоменклатура.ИспользоватьСубконто(ВидыСубконто.МестаХранения, , 1);
БухИтМатериалы.ИспользоватьСубконто(ВидыСубконто.МестаХранения, , 1);
КонецЕсли;
БухИтНоменклатура.ИспользоватьСубконто(ВидыСубконто.Номенклатура);
БухИтМатериалы.ИспользоватьСубконто(ВидыСубконто.Материалы);
// Здесь соберём все остатки в таблицу лесоматериалов
БухИтНоменклатура.ВыполнитьЗапрос(КонДата, КонДата, "21,43", , , , , "К");
БухИтМатериалы.ВыполнитьЗапрос(КонДата, КонДата, "10.1,10.17,10.2,10.6", , , , , "К");
ОбработаноСубконто = 0;
БухИтНоменклатура.ВыбратьСубконто(ВидыСубконто.МестаХранения);
Пока БухИтНоменклатура.ПолучитьСубконто(ВидыСубконто.МестаХранения) = 1 Цикл
МестоХранения = БухИтНоменклатура.Субконто(ВидыСубконто.МестаХранения);
БухИтНоменклатура.ВыбратьСубконто(ВидыСубконто.Номенклатура);
Пока БухИтНоменклатура.ПолучитьСубконто(ВидыСубконто.Номенклатура) = 1 Цикл
Лесоматериал = БухИтНоменклатура.Субконто(ВидыСубконто.Номенклатура);
ЗаполнитьТаблицу(ТабЛесоматериала, МестоХранения, БухИтНоменклатура, Лесоматериал);
ОбработаноСубконто=ОбработаноСубконто+1;
Состояние("Обработано субконто ""Номенклатура"": "+ОбработаноСубконто);
КонецЦикла;
КонецЦикла;
ОбработаноСубконто = 0;
БухИтМатериалы.ВыбратьСубконто(ВидыСубконто.МестаХранения);
Пока БухИтМатериалы.ПолучитьСубконто(ВидыСубконто.МестаХранения) = 1 Цикл
МестоХранения = БухИтМатериалы.Субконто(ВидыСубконто.МестаХранения);
БухИтМатериалы.ВыбратьСубконто(ВидыСубконто.Материалы);
Пока БухИтМатериалы.ПолучитьСубконто(ВидыСубконто.Материалы) = 1 Цикл
Лесоматериал = БухИтМатериалы.Субконто(ВидыСубконто.Материалы);
ЗаполнитьТаблицу(ТабЛесоматериала, МестоХранения, БухИтМатериалы, Лесоматериал);
ОбработаноСубконто=ОбработаноСубконто+1;
Состояние("Обработано субконто ""Материалы"": "+ОбработаноСубконто);
КонецЦикла;
КонецЦикла;
Если ТабЛесоматериала.КоличествоСтрок() = 0 Тогда
Предупреждение("Согласно заданным параметрам фильтра остатков не обнаружено.");
Возврат;
КонецЕсли;
// Свернём, отсортируем таблицу и подсчитаем промежуточные итоги
ГруппируемыеКолонки = "1, 2, 3, 4";
СуммируемыеКолонки = "5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
|26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
|46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
|66, 67, 68, 69, 70, 71, 72, 73, 74";
Если ИтогиПоСкладам = 0 Тогда
ТабЛесоматериала.Заполнить(ПолучитьПустоеЗначение(),,,"МестоХранения");
КолонкиПромежуточныхИтогов = "2";
Иначе
КолонкиПромежуточныхИтогов = "1, 2";
КонецЕсли;
ТабЛесоматериала = РассчитатьИтоги(ТабЛесоматериала, КолонкиПромежуточныхИтогов, ГруппируемыеКолонки, СуммируемыеКолонки);
// Выведем таблицу ===========================================================================================================
Таб=СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("ОсновнойОтчет");
ВыбранныеСклады = "";
Представление = "";
Для А=1 По МестаХранения.РазмерСписка() Цикл
Если ПустоеЗначение(ВыбранныеСклады) = 0 Тогда
ВыбранныеСклады = ВыбранныеСклады + ", ";
Иначе
ВыбранныеСклады = "По местам хранения: ";
КонецЕсли;
ВыбранныеСклады = ВыбранныеСклады + МестаХранения.ПолучитьЗначение(А, Представление);
КонецЦикла;
Если ПустоеЗначение(ВыбранныеСклады) = 0 Тогда
ВыбранныеСклады = ВыбранныеСклады + ".";
Иначе
ВыбранныеСклады = "По всем местам хранения.";
КонецЕсли;
Значение = Расшифровка;
Таб.ВывестиСекцию("Заголовок|ПП");
Расшифровка.УдалитьВсе();
Расшифровка.Установить("Отчет", ИмяФайла);
Расшифровка.Установить("Обновить", 1);
// ВыведемСложнуюШапку
ВысотаЗаголовка = Таб.ВысотаТаблицы();
Таб.ВывестиСекцию("Шапка|ПП");
Таб.ПрисоединитьСекцию("Шапка|Группы");
ШиринаСекцииПП = Таб.ШиринаСекции("Шапка|ПП");
ВысотаСекцииПП = Таб.ВысотаСекции("Шапка|ПП");
ШиринаСекцииГруппы = Таб.ШиринаСекции("Шапка|Группы");
ШиринаСекцийВлажность = ШиринаСекцииПП + ШиринаСекцииГруппы + 1;
ПерваяКолонкаСекцииВлажность = 0;
ПерваяСтрокаСекцииВлажность = ВысотаЗаголовка + 1;
ПерваяСтрокаСекцииДлина = ПерваяСтрокаСекцииВлажность + 1;
Для ВидВлажности=1 По ВидыВлажности.РазмерСписка()+БезВлажности Цикл
Если БезВлажности = 1 Тогда
Влажность = "Сырой и сухой";
Иначе
Влажность = "";
ВидыВлажности.ПолучитьЗначение(ВидВлажности, Влажность)
КонецЕсли;
ПерваяКолонкаСекцииВлажность = ПерваяКолонкаСекцииВлажность + ШиринаСекцийВлажность;
ШиринаСекцийВлажность = 0;
ШиринаСекцииВсегоПоВлажности = 0;
ПерваяКолонкаСекцииДлина = ПерваяКолонкаСекцииВлажность;
Если ВыводитьВсегоПоВлажности = 1 Тогда
Таб.ПрисоединитьСекцию("Шапка|ВсегоПоВлажности");
ШиринаСекцииВсегоПоВлажности = Таб.ШиринаСекции("Шапка|ВсегоПоВлажности");
ШиринаСекцийВлажность = ШиринаСекцийВлажность + ШиринаСекцииВсегоПоВлажности;
ПерваяКолонкаСекцииДлина = ПерваяКолонкаСекцииДлина + ШиринаСекцииВсегоПоВлажности;
КонецЕсли;
ШиринаСекцииДлина = 0;
Для ВидДлины=1 По ВидыДлин.РазмерСписка()+БезДлин Цикл
Если БезДлин = 1 Тогда
Длина = "От 0 до 6000 мм";
Иначе
Длина = "";
ВидыДлин.ПолучитьЗначение(ВидДлины, Длина);
КонецЕсли;
ПерваяКолонкаСекцииДлина = ПерваяКолонкаСекцииДлина + ШиринаСекцииДлина;
ШиринаСекцииДлина = 0;
Если ВыводитьВсегоПоДлине = 1 Тогда
Таб.ПрисоединитьСекцию("Шапка|ВсегоПоДлине");
ШиринаСекцииДлина = ШиринаСекцииДлина + Таб.ШиринаСекции("Шапка|Сорт");
КонецЕсли;
Для ВидСорта=1 По ВидыСортов.РазмерСписка()+БезСортов Цикл
Если БезСортов = 1 Тогда
Сорт = "Всех сортов включая без сорта";
Иначе
Сорт = "";
ВыбСорта.ПолучитьЗначение(ВыбСорта.НайтиЗначение(ВидыСортов.ПолучитьЗначение(ВидСорта, Сорт)), Сорт);
КонецЕсли;
Таб.ПрисоединитьСекцию("Шапка|Сорт");
ШиринаСекцииДлина = ШиринаСекцииДлина + Таб.ШиринаСекции("Шапка|Сорт");
КонецЦикла; // По сортам
ШиринаСекцийВлажность = ШиринаСекцийВлажность + ШиринаСекцииДлина;
// Объединим клетки с единой длиной
ОбластьДлина = Таб.Область(ПерваяСтрокаСекцииДлина, ПерваяКолонкаСекцииДлина, ПерваяСтрокаСекцииДлина, ПерваяКолонкаСекцииДлина+ШиринаСекцииДлина-1);
ОбластьДлина.Объединить();
КонецЦикла; // По длинам
// Объединим клетки с единой влажностью
ОбластьВлажность = Таб.Область(ПерваяСтрокаСекцииВлажность, ПерваяКолонкаСекцииВлажность, ПерваяСтрокаСекцииВлажность, ПерваяКолонкаСекцииВлажность+ШиринаСекцийВлажность-1);
ОбластьВлажность.Объединить();
КонецЦикла;
Если ВыводитьИтого = 1 Тогда
Таб.ПрисоединитьСекцию("Шапка|Итого");
Иначе
Таб.ПрисоединитьСекцию("Шапка|Линия");
КонецЕсли;
// Выведем строки
ВывестиСтроки(Таб, ТабЛесоматериала, КолонкиПромежуточныхИтогов);
// Выведем подвал
Таб.ВывестиСекцию("Подвал|ПП");
Таб.ПрисоединитьСекцию("Подвал|Группы");
// Добавим сложный набор колонок подвала
ТабЛесоматериала.ПолучитьСтрокуПоНомеру(1);
Для ВидВлажности=1 По ВидыВлажности.РазмерСписка()+БезВлажности Цикл
Влажность = "";
Если БезВлажности = 0 Тогда
ВидыВлажности.ПолучитьЗначение(ВидВлажности, Влажность);
КонецЕсли;
Если ВыводитьВсегоПоВлажности = 1 Тогда
ВсегоПоВлажности = ФорматК(ПолучитьЗначениеТаблички(ТабЛесоматериала, 1, Влажность));
Значение = ПолучитьРасшифровку(ТабЛесоматериала, Влажность);
Таб.ПрисоединитьСекцию("Подвал|ВсегоПоВлажности");
КонецЕсли;
ШиринаСекцииДлина = 0;
Для ВидДлины=1 По ВидыДлин.РазмерСписка()+БезДлин Цикл
Длина = "";
Если БезДлин = 0 Тогда
ПредставлениеДлины = "";
Длина = ВидыДлин.ПолучитьЗначение(ВидДлины, ПредставлениеДлины);
КонецЕсли;
Если ВыводитьВсегоПоДлине = 1 Тогда
ВсегоПоДлине = ФорматК(ПолучитьЗначениеТаблички(ТабЛесоматериала, 1, Влажность, Длина));
Значение = ПолучитьРасшифровку(ТабЛесоматериала, Влажность, Длина);
Таб.ПрисоединитьСекцию("Подвал|ВсегоПоДлине");
КонецЕсли;
Для ВидСорта=1 По ВидыСортов.РазмерСписка()+БезСортов Цикл
Сорт = "";
Если БезСортов = 0 Тогда
ВидыСортов.ПолучитьЗначение(ВидСорта, Сорт);
КонецЕсли;
ПоСорту = ФорматК(ПолучитьЗначениеТаблички(ТабЛесоматериала, 1, Влажность, Длина, Сорт));
Значение = ПолучитьРасшифровку(ТабЛесоматериала, Влажность, Длина, Сорт);
Таб.ПрисоединитьСекцию("Подвал|Сорт");
КонецЦикла; // По сортам
КонецЦикла; // По длинам
КонецЦикла; // По влажности
Если ВыводитьИтого = 1 Тогда
Итого = ФорматК(ПолучитьЗначениеТаблички(ТабЛесоматериала, 1));
Значение = ПолучитьРасшифровку(ТабЛесоматериала);
Таб.ПрисоединитьСекцию("Подвал|Итого");
Иначе
Таб.ПрисоединитьСекцию("Подвал|Линия");
КонецЕсли;
// Выровняем текст в заголовке по середине таблицы
Область = Таб.Область(2, 3, 2, Таб.ШиринаТаблицы()-1);
Область.Объединить();
Область = Таб.Область(3, 3, 3, Таб.ШиринаТаблицы()-1);
Область.Объединить();
Область = Таб.Область(4, 3, 4, Таб.ШиринаТаблицы()-1);
Область.Объединить();
// Выведем процентовку========================================================================================================
Таб.ВывестиСекцию("ШапкаПроцентовки|ПП");
Таб.ПрисоединитьСекцию("ШапкаПроцентовки|Группы");
// Выведем сложную шапку
ПерваяСтрокаСекцииСорт = Таб.ВысотаТаблицы() - 1;
ПерваяКолонкаСекцииСорт = Таб.ШиринаСекции("ШапкаПроцентовки|ПП") + Таб.ШиринаСекции("ШапкаПроцентовки|Группы") + 1;
ШиринаСекцииСорт = 0;
Для ВидСорта = 1 По ВидыСортов.РазмерСписка()+БезСортов Цикл
Если БезСортов = 1 Тогда
ПредставлениеСорта = "Всех сортов включая без сорта";
Иначе
ПредставлениеСорта = "";
ВыбСорта.ПолучитьЗначение(ВыбСорта.НайтиЗначение(ВидыСортов.ПолучитьЗначение(ВидСорта, ПредставлениеСорта)), ПредставлениеСорта);
КонецЕсли;
Таб.ПрисоединитьСекцию("ШапкаПроцентовки|Сорт");
ШиринаСекцииСорт = ШиринаСекцииСорт + Таб.ШиринаСекции("ШапкаПроцентовки|Сорт");
КонецЦикла;
Если КолонокСортов > 1 Тогда
Таб.ПрисоединитьСекцию("ШапкаПроцентовки|Итого");
ШиринаСекцииСорт = ШиринаСекцииСорт + Таб.ШиринаСекции("ШапкаПроцентовки|Итого");
Иначе
Таб.ПрисоединитьСекцию("ШапкаПроцентовки|Линия");
КонецЕсли;
// Объединим секции сорта
Область = Таб.Область(ПерваяСтрокаСекцииСорт, ПерваяКолонкаСекцииСорт, ПерваяСтрокаСекцииСорт, ПерваяКолонкаСекцииСорт+ШиринаСекцииСорт-1);
Область.Объединить();
// Выведем строки процентовки
Всего = ПолучитьЗначениеТаблички(ТабЛесоматериала, 1);
Если Всего = 0 Тогда
Всего = 100;
КонецЕсли;
Для ВидДлины = 1 По ВидыДлин.РазмерСписка()+БезДлин Цикл
Если БезДлин = 1 Тогда
ПредставлениеДлины = "От 0 до 6000 мм";
Длина = "";
Иначе
ПредставлениеДлины = "";
Длина = ВидыДлин.ПолучитьЗначение(ВидДлины, ПредставлениеДлины);
КонецЕсли;
Таб.ВывестиСекцию("СтрокаПроцентовки|ПП");
Таб.ПрисоединитьСекцию("СтрокаПроцентовки|Группы");
Для ВидСорта = 1 По ВидыСортов.РазмерСписка()+БезСортов Цикл
Если БезСортов = 1 Тогда
Сорт = "";
Иначе
ВидыСортов.ПолучитьЗначение(ВидСорта, Сорт);
КонецЕсли;
Процент = ПолучитьЗначениеТаблички(ТабЛесоматериала, 1, "", Длина, Сорт);
Процент = ФорамтПроцента(Процент, Всего);
Таб.ПрисоединитьСекцию("СтрокаПроцентовки|Сорт");
КонецЦикла;
Если КолонокСортов > 1 Тогда
Процент = ПолучитьЗначениеТаблички(ТабЛесоматериала, 1, "", Длина);
Процент = ФорамтПроцента(Процент, Всего);
Таб.ПрисоединитьСекцию("СтрокаПроцентовки|Итого");
Иначе
Таб.ПрисоединитьСекцию("СтрокаПроцентовки|Линия");
КонецЕсли;
КонецЦикла;
// Выведем подвал процентовки
Таб.ВывестиСекцию("ПодвалПроцентовки|ПП");
Таб.ПрисоединитьСекцию("ПодвалПроцентовки|Группы");
Для ВидСорта = 1 По ВидыСортов.РазмерСписка()+БезСортов Цикл
Если БезСортов = 1 Тогда
Сорт = "";
Иначе
ВидыСортов.ПолучитьЗначение(ВидСорта, Сорт);
КонецЕсли;
Процент = ПолучитьЗначениеТаблички(ТабЛесоматериала, 1, "", "", Сорт);
Процент = ФорамтПроцента(Процент, Всего);
Таб.ПрисоединитьСекцию("ПодвалПроцентовки|Сорт");
КонецЦикла;
Если КолонокСортов > 1 Тогда
Процент = ПолучитьЗначениеТаблички(ТабЛесоматериала, 1);
Процент = ФорамтПроцента(Процент, Всего);
Таб.ПрисоединитьСекцию("ПодвалПроцентовки|Итого");
Иначе
Таб.ПрисоединитьСекцию("ПодвалПроцентовки|Линия");
КонецЕсли;
Таб.ТолькоПросмотр(1);
Таб.Опции(0,0,ВысотаЗаголовка+ВысотаСекцииПП,ШиринаСекцииПП+ШиринаСекцииГруппы);
Таб.Показать("Отчет по остаткам лесоматериалов");
КонецПроцедуры
В коде используется две рекурсии и четыре запроса к базе данных. Отчёт интерактивный, т. е. когда кликаешь по клеткам с числами открывается другой отчёт-детализация.
Zveruga- Сообщения : 10901
Возраст : 44
Откуда : из леса
-
Re: Компьютерное железо и софт. Интернет.
автор Zveruga Пт 10 Мар 2017, 12:18
[tmb]http://s06.radikal.ru/i179/1703/c6/9d8df8363d42.png [/tmb]
Количество колонок в отчёте меняется в зависимости от выбора значений фильтров в диалоговом окне.
А вот тут лежит Excell вариант печатной формы этого отчёта.
Замдиректора предприятия, который начальник одела маркетинга, тратил на составление этого отчёта целый день. А благодаря мне стал делать его за 5 минут.
- Спойлер:
- Я ещё денег даже за эту работу не просил. Нужно себя подгонять. Стоит такой отчёт 70 000 рублей.
Zveruga- Сообщения : 10901
Возраст : 44
Откуда : из леса
-
Re: Компьютерное железо и софт. Интернет.
автор Zveruga Пт 10 Мар 2017, 12:27
Это реклама.
Zveruga- Сообщения : 10901
Возраст : 44
Откуда : из леса
-
Re: Компьютерное железо и софт. Интернет.
автор Racoon Пт 10 Мар 2017, 12:31
Zveruga пишет:Главная процедура одного из отчётов, который написал в последнее время.
Всего в отчёте 1780 индусских строк кода.
В коде используется две рекурсии и четыре запроса к базе данных. Отчёт интерактивный, т. е. когда кликаешь по клеткам с числами открывается другой отчёт-детализация.
Какой ужас. Простите. Программа с лексемами на русском языке. А для украинского есть или польского?
Racoon- Сообщения : 76688
Откуда : Море Спокойствия
-
Re: Компьютерное железо и софт. Интернет.
автор Racoon Пт 10 Мар 2017, 12:32
Racoon- Сообщения : 76688
Откуда : Море Спокойствия
-
Re: Компьютерное железо и софт. Интернет.
автор sabaca Пт 10 Мар 2017, 12:32
Хочу увидеть вариант этой программы на мове...Racoon пишет:А для украинского есть или польского?
sabaca- аналитег
- Сообщения : 5669
Откуда : Самара
-
Страница 1 из 34 • 1, 2, 3 ... 17 ... 34