powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / [игнор отключен] [закрыт для гостей] / Помогите понять. Обращается ли код к базе данных.
25 сообщений из 60, страница 1 из 3
Помогите понять. Обращается ли код к базе данных.
    #35443187
OlegKor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.
Прошу у Вас помощи.

Есть код. Написанный в 1Сv77.25 SQL

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
// ===============================            
Процедура ИзмМаршрут()
	ДокСчет=СоздатьОбъект("Документ");
	ДокСчет.ВыбратьПоЗначению(ДатаДок,ДатаДок,"Контрагент",Контрагент);
	Пока ДокСчет.ПолучитьДокумент()= 1  Цикл
		Если ДокСчет.ТекущийДокумент().Вид()="Счет" Тогда
			Если (ДокСчет.ФизАдрес=ФизАдрес) И (ДокСчет.Маршрут<>Маршрут) И (ДокСчет<>ТекущийДокумент()) Тогда
				Сообщить("По клиенту "+СокрЛП(Контрагент)+" , по физадресу "+ФизАдрес+" уже выписан счет №"+ДокСчет.НомерДок+". Попытаемся перевести его на новый маршрут...");         
				Попытка 
					ДокСчет.Маршрут=Маршрут;    
					ДокСчет.Записать();
					Сообщить("Счет №"+ДокСчет.НомерДок+" успешно переведен на маршрут "+Маршрут);
				Исключение 
					[color=red]Сообщить("Не удалось перевести счет №"+ДокСчет.НомерДок+" на новый маршрут. Попробуйте сделать это вручную... ");[/color]
				КонецПопытки;
			КонецЕсли;
		КонецЕсли;
	КонецЦикла;

КонецПроцедуры //ИзмМаршрут

Суть вопроса.
В этой строке

Сообщить("Счет №"+ДокСчет.НомерДок+" успешно переведен на маршрут "+Маршрут);

, судя о всей процедуре есть часть кода ДокСчет.НомерДок
Проясните ситуацию ... Вот именно здесь ... в этот момент исполнения кода. Обращается ли этот участок ( ДокСчет.НомерДок ) к базе данных???

Возник спор по оптимизации кода.
Я считаю, что нет необходимости в цикле выводить сообщения об успешных выполнениях задач. Я так же думаю, что в этом (подобном) участке кода ДокСчет.НомерДок ... 1С реально обращается к данным в базу данных.

Мой опонент считает, что в этом случае нет ни какого обращения к базе данных и исключение таких строк из кода ни как не повлияет на производительность. Другими словами, такая конструкция к базе данных не обращается.

Дело в том, что база данных 67 Гигабайт. Крутится на сервере терминалов. И 12 пользователей ставят сервер на колени. При попытке выполнить Отчет, который просто пестрит такими вставками кода. Сервер висит и еже все вместе с ним.
Сервер:ИНТЕЛ 2 Ксеон (= 8 процов) 8 Гиг ОЗУ 4 Сказенных винта.

Рассудите пожалуйста.
С уважением, OlegKor
...
Рейтинг: 0 / 0
Помогите понять. Обращается ли код к базе данных.
    #35443249
имхо: в данном случае объект находится в памяти и обращение к БД нет.
на самом деле очень просто проверить, воспользуйтесь profiler-ом
...
Рейтинг: 0 / 0
Помогите понять. Обращается ли код к базе данных.
    #35443253
Тяп Ляп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не очень понятна суть вашего с оппонентом спора. Вы там от безелья, походу, испытываете проблемы с поиском тем для спора ...

Что касается функции Сообщить(), то это очень медленная функция.
Например, указанный код за месяц при 50-100 документах в день (т.е. не при отборе ДокСчет.ВыбратьПоЗначению(ДатаДок,ДатаДок), а сплошняком ДокСчет.ВыбратьДокументы(НачалоМесяца,КонецМесяца) и без Сообщить()) должен выполняться несколько десятков секунд.
Если туда "умело" вставить вывод сообщений, то выполнение кода может затянуться на несколько часов даже в монопольном режиме. Знаю тому пример из практики. Причем, юзеры убеждали меня, что так долго и должно быть!

Если очень хочется сообщать какие-то глупости юзеру во время выполнения длительных процедур, юзайте Состояние() - практически совсем не замедляет работу кода.
Прогрессор выполнения графический тоже можно сделать - не болше 5 строк кода и по времени задержки - не на много больше Состояния() ...
...
Рейтинг: 0 / 0
Помогите понять. Обращается ли код к базе данных.
    #35443328
OlegKor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Френсис Дрейк

Теперь еще больше вопросов...

авторв данном случае объект находится в памяти

Т.е. у меня (у нас) объект "Документ" - это таблица в базе данных. В нашем случае ее объем порядка несколько миллионов строк. И Вы хотите сказать, что при:

авторДокСчет=СоздатьОбъект("Документ");

Вся эта "байда" размещается в памяти? Это чтоже получается мы запихиваем в память миллионы строк?
А если 10 пользователей выполнили такое объявление, то все это десятикратно? !!!!!

Я не утверждаю свою правоту. Но на мой взгляд выщеуказанное объявление объекта - это ссылка на объект, а не весь объект. И далее по коду прога понимает что какбы по этому пути (по ссылке) надо вынимать запрошенные данные:

- ДокСчет.Номер - Номер документа
- ДокСчет.Дата - дата документа.

Т.е. в моем понимании ... "ДокСчет" это типа путь к объекту (типа, пояснение проге .. куда идти и где брать), а не весь массив данных.
Или я не прав?

2 Тяп Ляп

Понимаешь? Суть как-раз в том, что "каждый байт на счету" в таблице RG_1270 .... 12 миллионов записей. В других таблицах ситуация похожа. Отчет формируется от 30 мин до 1,5 часа. Плюс в этом же отчете через команду "Сообщить... " сообщаются все прочитанные строки. И любой бзик ... При этом опонент утверждает, что в этой ситуации не стоит убирать из циклов команду "Сообщить" .. а в ней по сути инфа : "Такой то документ (Наименование, номер, дата) успешно обработан" ...

Ну, чтобы кратко. Конкретно.
Конструкция "ДокСчет.Номер" не обращается к базе. Да?

С уважением,
OlegKor
...
Рейтинг: 0 / 0
Помогите понять. Обращается ли код к базе данных.
    #35443347
Тяп Ляп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
OlegKor 2 Френсис Дрейк

Отчет формируется от 30 мин до 1,5 часа. Плюс в этом же отчете через команду "Сообщить... " сообщаются все прочитанные строки. И любой бзик ... При этом опонент утверждает, что в этой ситуации не стоит убирать из циклов команду "Сообщить" .. а в ней по сути инфа : "Такой то документ (Наименование, номер, дата) успешно обработан" ...



Ужас.
Эта "инфа" кому и зачем нужна? Ее кто-нибудь читает? С ума-то там не сходите. Напишите вместо сообщений через строку "ИмяЮзера - козел/дура набитая !!!!!!!!!!!" - никто не заметит! Могу поспорить на деньги.

А почему отчет медленно формируется?
...
Рейтинг: 0 / 0
Помогите понять. Обращается ли код к базе данных.
    #35443395
Тяп Ляп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
OlegKor 2 Френсис Дрейк

Отчет формируется от 30 мин до 1,5 часа. Плюс в этом же отчете через команду "Сообщить... " сообщаются все прочитанные строки. И любой бзик ... При этом опонент утверждает, что в этой ситуации не стоит убирать из циклов команду "Сообщить" .. а в ней по сути инфа : "Такой то документ (Наименование, номер, дата) успешно обработан" ...



Ужас.
Эта "инфа" кому и зачем нужна? Ее кто-нибудь читает? С ума-то там не сходите. Напишите вместо сообщений через строку "ИмяЮзера - козел/дура набитая !!!!!!!!!!!" - никто не заметит! Могу поспорить на деньги.

А почему отчет медленно формируется?
...
Рейтинг: 0 / 0
Помогите понять. Обращается ли код к базе данных.
    #35443427
OlegKor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Тяп Ляп
авторА почему отчет медленно формируется?

Не могу сказать точно почему так долго ... у меня доступ к коду конфиги несколько ограничен. Но, "спинным мозгом чувствуую" что там запросы "пойди туда, не знаю куда, принеси то, не знаю что". По своему опыту знаю, что причина этого - "Тяжелый код" ... захламленный.

Я сам сисадмин. Опонент - программист 1С.
Я пришел на фирму в январе этого года. Программист тут уже 3 года.

Когда я пришел, в сети базы 1С были размазаны на 6-ти компах (по сути все идентичные на 100%) не считая сервера о котором я упомянул. На каждом из этих компов стояла операционка Вин 2003 + SQL сервер. Вся эта байда разруливалась синхронизацией баз через УРБД.

Я все посносил. Разместил одну единственную базу на сервере. Обрезал данные по январь 2008. До недавнего времени это все работало нормально. Но теперь замечаются все чаще и чаще подвисания юзеров (напомню, активных всего 12 чел). Мля, сервак - самолет. 12 штук зеленью.

Я настаиваю оптимизировать код. Программер настаивает ... "каждому юзеру по серверу" .. (шутка) т.е. предлагает опять размазать все это по сети. Я против.

Имею значительный опыт программирования на C#.NET + SQL 2005 знаю что все может работать на много эффективнее ... Но .. пока все заканчивается только спорами "ни о чем"... А фирма "висит" днями.

Предлагаю ВК 1С++ или ToySQL написать прямые запросы к БД. Так же утверждаю, что надо хорошенько поработать над ликвидацией блокировок. Это со скрипом, как бы приходит к согласию. Согласие было две нелеи назад, а воз и ныне там. К тому же настаиваю на "чистку" кода.

Конфига, переписанная программером 1С почти вся. Он сейчас занят другим проектом .. И постоянно пудрит мозг руководству, а мне от этого ни какого покоя. Сейчас юзеры на фирме работают по графику ... одни до 12 дня, другие с 12 до 16.00 потом еще .. Короче - "Сталинград". Даже после такого разделения бывают подвисания (правда уже редко но метко, до залипания). Как только подвисание, то это серьезно, иногда только перезагрузка сервака помагает. А мне это зачем? Но ведь я знаю точно, что проблема таким способом не решается в принципе. Потому-что по сути ничего не меняется.

Но это все лирика.

Мне бы точно узнать, как же все-таки работает 1С по сути моего вопроса. Где бы мне чего прочесть по этому поводу? Чтобы не со своих догадок-предположений это утверждать. Подскажите где найти инфу.

Заранее благодарен за помощь.
...
Рейтинг: 0 / 0
Помогите понять. Обращается ли код к базе данных.
    #35443465
OlegKor

Т.е. у меня (у нас) объект "Документ" - это таблица в базе данных. В нашем случае ее объем порядка несколько миллионов строк. И Вы хотите сказать, что при:

авторДокСчет=СоздатьОбъект("Документ");

Вся эта "байда" размещается в памяти? Это чтоже получается мы запихиваем в память миллионы строк?
А если 10 пользователей выполнили такое объявление, то все это десятикратно? !!!!!



нет я думаю, что объект попадет в память при ДокСчет.ПолучитьДокумент()

ладно если ты не умеешь пользоваться профилером, завтра попробую точно скажу.
...
Рейтинг: 0 / 0
Помогите понять. Обращается ли код к базе данных.
    #35443511
Тяп Ляп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В память попадает выборка документов. В каком объеме не скажу.
Скажу, что ты не с того конца роешь. Сисадины - враги 1С.
Обрезанная по январь 2008 года и имеющая размер 67 Гигабайт база - это нонсенс.
Даже если она 10 лет уже работает необрезанная, 12 пользователей не смогут наколотить такой объем, даже если ночевать будут на рабочем месте без отпусков и выходных.

Скорее всего, это - незакрывающиеся регистры остатков.
Только от них может так пухнуть и, соответственно, тормозить база.
И никакие 1С++, прямые запросы и пр. здесь не помогут.
Хотя, конечно, не глядя на базу, все рассуждения о природе вещей - это научная телепатия, основанная на опытах профессора Преображенского и законах металлопатии ...
...
Рейтинг: 0 / 0
Помогите понять. Обращается ли код к базе данных.
    #35443706
Алексей Е.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OlegKor
Открываете отладчик. Ищете в нём нужный кусок кода. Нажимаете "Замер производительности". Выполняете кусок кода в рабочем режиме. Отжимете замер производительности. Перед кажой строчкой кода в отладчике получаете время выполненя строки, количество проходов по ней, процент от общего времени.

И все ваши споры с программистом разрулятся. И видно будет, что нужно ортимизировать в первую очередь. У меня было так. 1 документ проводился 30 мин (задним числом) всего из-за 1 строки - расчет остатков в цикле. При этом все остальные пользователи курят.
...
Рейтинг: 0 / 0
Помогите понять. Обращается ли код к базе данных.
    #35443732
Алексей Е.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OlegKor
..... Согласие было две нелеи назад, а воз и ныне там. К тому же настаиваю на "чистку" кода.
Конфига, переписанная программером 1С почти вся. Он сейчас занят другим проектом .. И постоянно пудрит мозг руководству, а мне от этого ни какого покоя.......


Вот с этого и надо начинать. Что человек сейчас работает над другими делами. И заниматься тем что уже работает вы предлагаете ему свободное от работы время. Так? Сходите к руководству и узнайте они собираются ресурсы выделять на оптимизацию. При этом нового функционала они не получат, а получат всё "быстрее". Перевести все на прямые запросы работа нелегкая, и с большой квалификацией. Возьмут они ещё 1 программиста на это. Если нет, то и вам не о чём беспокоиться. А если вам хочется и чешется чтобы всё было правильно и летало, платите свои кровные денюжки за это.
...
Рейтинг: 0 / 0
Помогите понять. Обращается ли код к базе данных.
    #35443750
Фотография Dinamo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.
Пути оптимизации кода и повышения производительности.

Рекомендации.
1. Формировать список документов для проверки контрольных условий и изменений не через выборку , а через запрос . Алгоритм использования выборки не оптимальный. По сути сначала идет выборка всех документов всех видов за дату по определенному контрагенту, а только потом отсечение всех документов с видом отличным от Счет.
Предположу что объем такой выборки очень значителен.

В запросе сразу отделить документы заданного вида с отбором по контрагенту. Результат запроса выгружаете в таблицу значений, в таблице нужна ссылка на сам документ, и на те значения которые проверяете, а также те значения которые выводите в сообщении (в этом случае в сообщение будут подставляться данные из таблицы значений).
Затем перебираете строки таблицы и проверяете условия по данным указанным в строке, для тех строк по которым удовлетворяются условия получаете объект (конструкция НайтиДокумент) и уже для него производите изменение и запись в базу.

Да если подойти еще глобальнее то можно сформировать запрос таким образом чтобы в результат попали только те документы которые подлежат изменению, то есть включить граничные условия в текст запроса.

2. Упростить первое условие из сочетания различных условий до элементарных, поскольку конструкция требует вычисления, в дополнение код станет более читабельный за счет конструкции отсечения граничных условий.
Если (ДокСчет.ФизАдрес=ФизАдрес) И (ДокСчет.Маршрут<>Маршрут) И (ДокСчет<>ТекущийДокумент()) Тогда

Принцип разбить исходное условие на элементарные, при отработке граничного условия продолжать работу цикла, то есть переходить к следующему документу.

Пример построение условий:
Если ДокСчет=ТекущийДокумент() Тогда Продолжить;КонецЕсли;
Если ДокСчет.Маршрут=Маршрут Тогда Продолжить;КонецЕсли;
Если ДокСчет.ФизАдрес<>ФизАдрес Тогда Продолжить;КонецЕсли;

В случае если переделаете код на работу через запрос то условия могут успользоваться к полям строк таблицы значение либо сразу применены в тексте запроса

3. Перед началом цикла в котором используется Записать() использовать директиву
НачатьТранзакцию()
после завершения цикла -
ЗавершитьТранзакцию(). (кажись так года три не программировал на 1С)

4. Справедливо замечание на счет вывода "никому не нужных сообщений.
Сообщения нужны на этапе отладки, на этапе выполнения от них нет никакого толку, вот если бы программист реализовал прогресс бар, в котором был бы счетчик общего колдичества документов и счетчик уже обреботанных документов. Но для такого "тупого" алгоритма выборки такой подход тоже не работает, поскольку выборка не дает информации о количестве документов которые могут быть обработаны.
Рекомендуется переделать процедуру и просто тупо формировать строки в объекте типа текст, а потом сохранять этот объект в файл с уникальным именем формируемым, например по дате и времени записи файла. Также возможен вариант с формированием Таблицы в которой формируются строки и по окончания цикла система выводит таблицу на экран (по сути получается протокол выполнения обработки). Далее пользлователь сам принимает решение что с ней делать - печатать, сохранять в файл.


Дополнительно не исключено что проблемы с размером базы и производительностью мало связаны с этой "обработкой" (отчетом).
Кстати вы вытащили код из контекста не разъяснив где именно он находится, судя по коду он находится в модуле проведения или в модуле формы документа документа вида - Счет.

Удачи.
...
Рейтинг: 0 / 0
Помогите понять. Обращается ли код к базе данных.
    #35443760
tester2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С учетом того, что автор обозначил, что конфа полностью переработана- ответ Тяп Ляп'а очень актуален:) (67 гигов с 2008 года) Если у вас есть опыт работы с MsSQL - откройте файл 1c.DDS и изучайте струтктур БД. Найдите самые большие таблицы, определите их назначение через файл DDS, следующий шаг определить объекты в конфигурации, которые совершают движения в них. А дальше- реинжениринг того всего, что вас доблестный прог успел наваять за 3 года - но это занятие для сильных духом джигитов :)
...
Рейтинг: 0 / 0
Помогите понять. Обращается ли код к базе данных.
    #35443810
harka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Насколько я помню, Док.ПолучитьДокумент() загружает документ в память. При этом в память подгружаются значения всех реквизитов простых типов (строки, числа, даты). Что касается ссылочных типов - то подгружаются только ссылки на них.
Поэтому, Док.НомерДок - обращения к БД нет, а вот Док.Контрагент - обращение есть.
...
Рейтинг: 0 / 0
Помогите понять. Обращается ли код к базе данных.
    #35443874
OlegKor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Алексей Е.

Он взял на себя ответственность за то, что сделано сейчас. Получает за это деньги. А другой проэкт не касается этого. Человек может сколько угодно заниматься любыми делами. Но то, за что несет ответственность дожлен делать. А если не успевает одним задом на два стула.... Это его проблемы. Другой проэкт ни как не касается нашей фирмы.

авторСходите к руководству и узнайте они собираются ресурсы выделять на оптимизацию
Ресурсы на оптимизацию он получает ежемесячно. А если уж совсем по принципу. Все ляпсусы нагородил он лично. Почему фирма должна оплачивать ошибки (неэффективные реализации, захламление кода) разработки?

авторПри этом нового функционала они не получат, а получат всё "быстрее"
Да и не надо НОВОГО, пусть хоть это заработает по-человечески.

авторПеревести все на прямые запросы работа нелегкая, и с большой квалификацией. Возьмут они ещё 1 программиста на это. Если нет, то и вам не о чём беспокоиться.
А я и не говорю, что работы мало но это не моя забота, надо было сразу думать. Он за 3 года не мало бабла выпил с фирмы. А прога то не работает. Я так предполагаю, что когда он только пытался внедриться, то песни пел об эффективности наверное УХ! Какие. Или он думал, что торгующая фирма будет продавать по две единицы в неделю?

А вот мне как-раз и есть за что беспокоиться. Мне приходится в иные дни каждый час сервер перезагружать. А на нем не только 1С вертится. Там есть еще кое-чего ... прислюненное с его же рекомендации. Что мля стартует через раз. А это геморой уже мне. А зачем? Мне это надо? Или Вам это бы понадобилось?

авторА если вам хочется и чешется чтобы всё было правильно и летало, платите свои кровные денюжки за это.
Т.е. если не правильно и не летает - это нормально? Это и есть норма? Получается, что фирма должна быть счастлива от неправильной работы проги и тормозов, а если хочется правильно и быстро, то надо платить бабло?

Да. Я не желаю сидеть по ночам и разруливать прилетевшее ниоткуда. Кто мне заплатит за последствия такой чудесной работы?

2 Тяп Ляп

Прошу прощение за неточность.
База данных была до обрезания 71 GB, потом делали над ней некоторые танцы с бубном, она стала 68 Гиг. Потом я ее обрезал ... теперь она 8 Гиг

авторСкорее всего, это - незакрывающиеся регистры остатков.
Только от них может так пухнуть и, соответственно, тормозить база.
Возможно и так. Я так же считаю, что мелочей не бывает и все должно быть обосновано. И сообщать юзеру о всем на свете, считаю глупо.
...
Рейтинг: 0 / 0
Помогите понять. Обращается ли код к базе данных.
    #35443888
Фотография Dinamo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OlegKorПонимаешь? Суть как-раз в том, что "каждый байт на счету" в таблице RG_1270 .... 12 миллионов записей. В других таблицах ситуация похожа.
Судя по данной фразе проблема в ошибках при проектировании структуры и алгоритмов проведения по регистрам.
В первую очередь оптимизация структуры и основных алгоритмов, во вторую оптимизация кода.
Ну и соответствующий бюджет под это дело - то что "съекономили" на этапе формулирования требований, постановки задачи, проектирования и разработки - "вынь да полож" для приведения системы к насущным бизнес-требованиям.
Хотя, если принимается решение что пол дня половина пользователей, пол дня другая, серьезные отчеты запускаем вечерами или по выходным то бизнес-заказчика текущая производительность и ограничения работы системы устраивает.
Так что Олег, Вы для себя конечно разберитесь в чем проблема и уточните определенные моменты, это очень похвально что вы проявляете в этом вопросе настойчивость, дополнительный опыт никогда не помешает, но вот кидаться на амбразуру и вызывать огонь на себя это на данном этапе лишнее.
Рекомендую по результатам ваших исследований подготовить руководству аналитическую записку с прогнозами в отношении необходимости бесперспективного наращивания мощностей железа при условии наличия "белых пятен" в проектировании и производительности информационной системы.

P.S. Вот из-за таких подходов к проектированию систем и "програмистов 1С" падает интерес, а зачастую и образуется негатив профессионального сообщества к самой платформе.
...
Рейтинг: 0 / 0
Помогите понять. Обращается ли код к базе данных.
    #35443904
Фотография Dinamo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OlegKor авторПри этом нового функционала они не получат, а получат всё "быстрее"
Да и не надо НОВОГО, пусть хоть это заработает по-человечески.
Увы, понятия - "по человечески" в бизнес-среде не существует.
Если надо то 20 теток посадят со счетами за "три копейки" делать бессмысленную тупую работу.... "не по человечески"? - зато выгоднее для бизнеса.

OlegKor авторСкорее всего, это - незакрывающиеся регистры остатков.
Только от них может так пухнуть и, соответственно, тормозить база.
Возможно и так. Я так же считаю, что мелочей не бывает и все должно быть обосновано. И сообщать юзеру о всем на свете, считаю глупо.
Поправка. Вывод сообщений никак не связан с регистрами остатков их незакрытием и пухнущими таблицами.
...
Рейтинг: 0 / 0
Помогите понять. Обращается ли код к базе данных.
    #35443944
OlegKor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 tester2000

Посмотреть какие таблицы самые емкие это не сложно.
Могу поделиться скриптом. (приложен).

Проблема в том, что человек который должен желать что то улучшить ... ищет причины, чтобы этого не делать. Отрицает любые попытки. Мне надо убедить руководство, тогда они приймут решение ... надо будет заменить программиста - заменят.
...
Рейтинг: 0 / 0
Помогите понять. Обращается ли код к базе данных.
    #35443989
OlegKor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Dinamo
авторВывод сообщений никак не связан с регистрами остатков
Да знаю я что никак не связан. Но зачем мешать работать программе?

Код: plaintext
Сообщить("По клиенту................... уже выписан счет №"+ДокСчет.НомерДок+". Попытаемся перевести его на новый маршрут...");

По коду:
Ну пытаетесь?! Ну и пытайтесь. Дайте поработать программе или попытаться поработать программе. Как тут пользователель поможет? Зачем ему эта инфа?

Код: plaintext
Сообщить("Счет №"+ДокСчет.НомерДок+" успешно переведен на маршрут "+Маршрут);

По коду:
Успешно переведен на маршрут. Ну и УРА! На кой бень пользователю это знать?

Код: plaintext
Сообщить("Не удалось перевести счет №"+ДокСчет.НомерДок+" на новый маршрут.

По коду:
А вот тут считаю, сообщение оправдано, потому-что опичывает "Исключение"

======
Вот такую позицию я выссказываю программеру.... И считаю что так правильно. Он считает, что нет.

Он так же считает, что если объявить процедуру в теле модуля и ничего в ней не написать или написать, но не использовать это нигде ни разу во всей конфиге (десятки случаев, которые я успел увидеть), то это ничего - это нормально.
Я же считаю, что в коде (в работающем коде) должно быть только то, что должно работать.
...
Рейтинг: 0 / 0
Помогите понять. Обращается ли код к базе данных.
    #35443996
OlegKor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Dinamo

Спасибо за "пути оптимизации" ...
Спасибо!
...
Рейтинг: 0 / 0
Помогите понять. Обращается ли код к базе данных.
    #35444032
OlegKor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 harka
Спасибо!
авторПоэтому, Док.НомерДок - обращения к БД нет, а вот Док.Контрагент - обращение есть.
Если это дейтвительно так, то именно ЭТО я и хотел узнать.
...
Рейтинг: 0 / 0
Помогите понять. Обращается ли код к базе данных.
    #35444057
Алексей Е.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OlegKor
По коду:
Ну пытаетесь?! Ну и пытайтесь. Дайте поработать программе или попытаться поработать программе. Как тут пользователель поможет? Зачем ему эта инфа?
Код: plaintext
Сообщить("Счет №"+ДокСчет.НомерДок+" успешно переведен на маршрут "+Маршрут);


Это у вас админ будет решать что нужно пользователю, а что нет?
Запустите наконец замер производительности и узрейте наконец, что само Сообщить() это десятые доли процента от всего времени!
...
Рейтинг: 0 / 0
Помогите понять. Обращается ли код к базе данных.
    #35444140
Алексей Е.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OlegKor
Он взял на себя ответственность за то, что сделано сейчас. Получает за это деньги. А другой проэкт не касается этого. Человек может сколько угодно заниматься любыми делами. Но то, за что несет ответственность дожлен делать. А если не успевает одним задом на два стула.... Это его проблемы. Другой проэкт ни как не касается нашей фирмы.


"Но то, за что несет ответственность дожлен делать." - вы знакомы с договорённостью руководитель - программист в деталях, знаете за что ему платят?
"А если не успевает одним задом на два стула.... Это его проблемы." - это не его проблемы, а проблемы фирмы (его непосредствееного руководителя). И уж тем более не ваши. Его проблемы детей своих накормить как можно более сытнее.

OlegKor
Ресурсы на оптимизацию он получает ежемесячно. А если уж совсем по принципу. Все ляпсусы нагородил он лично. Почему фирма должна оплачивать ошибки (неэффективные реализации, захламление кода) разработки?


Потому что это обычные бизнес риски. Где этого нет? Не нравится работа этого, депремируйте, ну или замените. (Ещё и пощете кем, да ещё на ту же з/п)

OlegKor
Да и не надо НОВОГО, пусть хоть это заработает по-человечески.


По-человечески владельцам фирмы не надо, надо по-дешевле. А если это вам надо вы и платите. В чём проблема?

OlegKor
А я и не говорю, что работы мало но это не моя забота, надо было сразу думать. Он за 3 года не мало бабла выпил с фирмы. А прога то не работает. Я так предполагаю, что когда он только пытался внедриться, то песни пел об эффективности наверное УХ! Какие. Или он думал, что торгующая фирма будет продавать по две единицы в неделю?

Не важно, что он там пел. Важно, что 3 года большой срок. Вполне можно и заменить вруна или добавить ещё программиста для выполнения объёмов.

OlegKor
А вот мне как-раз и есть за что беспокоиться. Мне приходится в иные дни каждый час сервер перезагружать. А на нем не только 1С вертится. Там есть еще кое-чего ... прислюненное с его же рекомендации. Что мля стартует через раз. А это геморой уже мне. А зачем? Мне это надо? Или Вам это бы понадобилось?


Перегружать каждый час SQL сервак - здесь уже о вашей компетенности надо задуматься. Обычно 1С-программист напрямую с SQL не работает, а через платформу. А платформа хоть и дубовая но уже давно мало-глючная, и откровенных SQL бомб не подсовывает серваку.
Тысячу раз уже писали не грузите SQL сервак другими делами!!!! Наши админы по бедности тоже недавно файло помойку организавали на серваке с SQL - "да оно же совсем не грузит процессор". Все продажники взвыли - через неделю купили новый сервак.

OlegKor
Т.е. если не правильно и не летает - это нормально? Это и есть норма? Получается, что фирма должна быть счастлива от неправильной работы проги и тормозов, а если хочется правильно и быстро, то надо платить бабло?


"Т.е. если не правильно - это нормально?" - да нормально, потому как дёшево!
"а если хочется правильно и быстро, то надо платить бабло?" - именно так!!!
...
Рейтинг: 0 / 0
Помогите понять. Обращается ли код к базе данных.
    #35444162
OlegKor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Алексей Е.

Спасибо, я Вашу позицию понял.
Но по сути моего вопроса пользы мало.
...
Рейтинг: 0 / 0
Помогите понять. Обращается ли код к базе данных.
    #35444167
Алексей Е.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OlegKor
Есть код. Написанный в 1Сv77.25 SQL

Кстати последний релиз платформы уж года три как 7.70.0. 27
Опять же почему бы админу не проследить за одновлениями стандартоного (не рукописного) ПО? Тем более это вообще не сложно.
...
Рейтинг: 0 / 0
25 сообщений из 60, страница 1 из 3
Форумы / [игнор отключен] [закрыт для гостей] / Помогите понять. Обращается ли код к базе данных.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]