Перейти к содержимому


Услуги программиста 1С
Профессиональные программисты 1С.
Весь комплекс услуг сопровождения 1С.

Курсы 1С
Бухгалтерам, менеджерам
и программистам.
Бесплатно!
Живое индивидуальное обучение по 1С.

Убей в себе индуса или мартышки тоже пишут код.


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 19

#1   pak

pak

      Генерал-майор

    • Модераторы
    • Сообщений: 340
    • Регистрация: 02-February 09
    • Откуда:Солнечный Крым

Отправлено 04 March 2011 - 10:05

Блуждая по просторам клиентских конфигураций, иногда я встречаю куски кода, которые не оставляют меня равнодушным.
В этом треде я буду делиться этими образцами.
1. Когда мне попался этот комментарий я не выдержал и засмеялся
//Здесь покоится прах функции, вычисляющей сумму опаты по конкретной работе конкретного счета. Пренести в глобальный модуль
//функция ....

2. давеча встретился еще один перл:

Code

             Если 0+СумКат3 <> 0 Тогда   
      СумТ=0+СумКат3;

Тот кто объяснит что автор хотел этим сказать, может взять с полки пирожок.
  • 0

#2   ivisor

ivisor

      Генералиссимус

    • Пользователи
    • PipPipPipPipPipPipPipPipPipPip
    • Сообщений: 1438
    • Регистрация: 06-March 08
    • Откуда:Планета Земля

Отправлено 05 March 2011 - 22:18

Quote (pak)
Тот кто объяснит что автор хотел этим сказать

А вдруг ... smile
  • 0

#3   vik

vik

      Полковник

    • Пользователи
    • PipPipPipPipPipPip
    • Сообщений: 241
    • Регистрация: 08-April 09
    • Откуда:Белогородка , Киевская Область , Украина

Отправлено 05 March 2011 - 23:47

Автор явно хотел сказать, что работаем с числами wink
  • 0
Одна из самых чудесных наград этой жизни - искренне помогая другому, непременно помогаешь и себе

#4   pak

pak

      Генерал-майор

    • Модераторы
    • Сообщений: 340
    • Регистрация: 02-February 09
    • Откуда:Солнечный Крым

Отправлено 09 March 2011 - 09:26

vik, точно, такой вот метод приведения типа.
  • 0

#5   Max_Nj

Max_Nj

      Ищу работу!!!

    • Пользователи
    • PipPipPipPipPipPipPipPip
    • Сообщений: 506
    • Регистрация: 07-August 08
    • Откуда:Мелитополь

Отправлено 09 March 2011 - 16:46

Вот еще код:
Code

Если а=Да Тогда
   а=Нет;
Иначе
   а=Да;
КонецЕсли;

Ну прям женская логика!!!

P.S. 5_kopeek, прошу не обижаться на последнюю фразу!

  • 1

#6   tiger8494

tiger8494

      Рядовой

    • Пользователи
    • Сообщений: 1
    • Регистрация: 23-November 09
    • Откуда: , , Украина

Отправлено 10 March 2011 - 11:37

Quote (Max_Nj)
Вот еще код:
Code

Если а=Да Тогда
а=Нет;
Иначе
а=Да;
КонецЕсли;

Ну прям женская логика!!!

Один коллега мне объяснил, что оператор ?(...,...,...) для него "нечитабелен".... Ну не нравится он человеку!

Добавлено (10.03.2011, 11:35)
---------------------------------------------

Quote (plus)
спросил у бухов, не смущает ли их то, что при вводе новой строки суммавсего не меняется - они сильно удивились когда такое заметили, тут же хотелось спросить а для кого такой шедевр писался...

Иногда клиенты просят сделать... в общем не совсем, мягко говоря, логичные вещи.
В данном случае могу, например, предположить, что заказчик на доработку попросил, чтобы фиксировалась "начальная" (при открытии) сумма.

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

Добавлено (10.03.2011, 11:36)
---------------------------------------------
Но потом научился искать по тексту сообщения код, который по сути не ошибочный, но выдавал ошибку типа "отрицательных остатков"

Добавлено (10.03.2011, 11:37)
---------------------------------------------
Главное ведь что - чтобы документы проводились!!! biggrin

  • 0

#7   ivisor

ivisor

      Генералиссимус

    • Пользователи
    • PipPipPipPipPipPipPipPipPipPip
    • Сообщений: 1438
    • Регистрация: 06-March 08
    • Откуда:Планета Земля

Отправлено 10 March 2011 - 15:27

plus, думаю вторую строку СС=СС+Сумма; просто забыли закомментировать (возможно тело процедуры изначально состояло только из нее), а поскольку на результат он не влияет, то ошибку не выявили smile
  • 0

#8   ivisor

ivisor

      Генералиссимус

    • Пользователи
    • PipPipPipPipPipPipPipPipPipPip
    • Сообщений: 1438
    • Регистрация: 06-March 08
    • Откуда:Планета Земля

Отправлено 11 March 2011 - 03:18

plus, и на это тоже есть свое объяснение ... biggrin
Например он мог не подозревать что есть такое свойство как "Итог по колонке" и что его нужно установить у реквизита Сумма cool
  • 0

#9   Ardi

Ardi

      Генерал-полковник

    • Пользователи
    • PipPipPipPipPipPipPipPipPip
    • Сообщений: 958
    • Регистрация: 27-January 09
    • Откуда:Столица

Отправлено 11 March 2011 - 09:22

Quote (ivisor)
Например он мог не подозревать что есть такое свойство как "Итог по колонке" и что его нужно установить у реквизита Сумма

Если установить "итог по колонке" то возрастёт объем хранимой в базе данных информации. Фе.
  • 0

#10   Valerka

Valerka

      Генералиссимус

    • Пользователи
    • PipPipPipPipPipPipPipPipPipPip
    • Сообщений: 1305
    • Регистрация: 03-April 08
    • Откуда:Каменец-Подольский

Отправлено 11 March 2011 - 16:36

plus, про военных, я попрошу biggrin
  • 0
Можно ответить на любой вопрос, если вопрос задан правильно.
Если сообщение помогло Вам - не забудьте нажать на МАЛЕНЬКУЮ стрелочку справа снизу Изображение

#11   ivisor

ivisor

      Генералиссимус

    • Пользователи
    • PipPipPipPipPipPipPipPipPipPip
    • Сообщений: 1438
    • Регистрация: 06-March 08
    • Откуда:Планета Земля

Отправлено 11 March 2011 - 16:44

Quote (Ardi)
то возрастёт объем хранимой в базе данных информации. Фе.

А еще классно вобще не вводить в базу инфу - тогда размер вобще не растет wink tongue
  • 0

#12   Ardi

Ardi

      Генерал-полковник

    • Пользователи
    • PipPipPipPipPipPipPipPipPip
    • Сообщений: 958
    • Регистрация: 27-January 09
    • Откуда:Столица

Отправлено 12 March 2011 - 13:06

7.7
Документ счет. Необходимо выводить данные поля "Коэфициент" не основной единицы измерения товара.
Делается это запросом.
Если переходим на другую строку, то снова выполняется запрос.

Code
Функция глКвоВУпаковке(Товар,Ед) Экспорт
  Перем Запрос, ТекстЗапроса, Таб;
  //Создание объекта типа Запрос
  Запрос = СоздатьОбъект("Запрос");
  ТекстЗапроса =  
  "//{{ЗАПРОС(Сформировать)
  |Единицы = Справочник.Единицы.ТекущийЭлемент;
  |Владелец = Справочник.Единицы.Владелец;
  |Коэффициент = Справочник.Единицы.Коэффициент;
  |ЕдиницаУпаковки = Справочник.Единицы.ЕдиницаУпаковки;
  |Единица = Справочник.Единицы.Единица;
  |Группировка Единицы;
  |Условие(Владелец = Товар);
  |Условие(ЕдиницаУпаковки = 1);
  |"//}}ЗАПРОС
  ;
  // Если ошибка в запросе, то выход из процедуры
  Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
   Возврат "";
  КонецЕсли;

  Если Запрос.Группировка(1) = 1 Тогда
   Возврат Запрос.Коэффициент;
  Иначе
   Возврат "";
  КонецЕсли;
КонецФункции

  • 0

#13   vadim007

vadim007

      Подполковник

    • Пользователи
    • PipPipPipPipPip
    • Сообщений: 146
    • Регистрация: 14-October 09
    • Откуда:Донецк, Украина

Отправлено 30 March 2011 - 13:11

В регламентированных отчетах часто и густо, после описания текста запроса, встречается цикл:

ПЦ = 0;
Пока ПЦ<10000 Цикл
ПЦ = ПЦ + 1;
КонецЦикла;

Cмысл?

  • 0

#14   5_kopeek

5_kopeek

      Генерал-лейтенант

    • Пользователи
    • PipPipPipPipPipPipPipPip
    • Сообщений: 608
    • Регистрация: 31-January 11
    • Откуда:Украина

Отправлено 30 March 2011 - 20:01

vadim007, думаю, это эмулятор паузы.
  • 0

Услуги программиста 1С


#15   Igorr

Igorr

      Майор

    • Пользователи
    • PipPipPipPip
    • Сообщений: 91
    • Регистрация: 25-December 09
    • Откуда:Сарны , Ровенская Область , Украина

Отправлено 30 March 2011 - 20:55

5_kopeek, То, что это эмулятор паузы, невызывает сомнения. Вопрос в другом, зачем разработчикам, целенаправлено уменьшать скорость выполнения програмного кода (тела программы)??????
  • 0

#16   5_kopeek

5_kopeek

      Генерал-лейтенант

    • Пользователи
    • PipPipPipPipPipPipPipPip
    • Сообщений: 608
    • Регистрация: 31-January 11
    • Откуда:Украина

Отправлено 30 March 2011 - 21:34

Igorr, иногда возникает в этом необходимость (например, дать время библиотеке зарегистрироваться перед первым вызовом). Зачем они это делали, скажу Вам честно, мне разбираться неохота. Можете поэкспериментировать, если есть желание, убрать такие паузы и посмотреть, что получится smile
  • 0

Услуги программиста 1С


#17   Ardi

Ardi

      Генерал-полковник

    • Пользователи
    • PipPipPipPipPipPipPipPipPip
    • Сообщений: 958
    • Регистрация: 27-January 09
    • Откуда:Столица

Отправлено 31 March 2011 - 01:36

Quote (Igorr)
5_kopeek, То, что это эмулятор паузы, невызывает сомнения. Вопрос в другом, зачем разработчикам, целенаправлено уменьшать скорость выполнения програмного кода (тела программы)??????

Читал что на новых компьютерах у 7.7 проблемы с перебором выборки. И для этого замедляют.
Или наоборот на старых.

На одном компе с включенным Касперским большой отчет несколько раз формируется пустым, на 3-5 раз показывается с данными. (торговля)

  • 0

#18   vadim007

vadim007

      Подполковник

    • Пользователи
    • PipPipPipPipPip
    • Сообщений: 146
    • Регистрация: 14-October 09
    • Откуда:Донецк, Украина

Отправлено 03 April 2011 - 19:31

Если таким образом делается пауза, то между чем?
Созданием строки с запросом и выполнением самого запроса?
Странно. Но, может возможно объяснить эту паузу следующим образом: программный код выполняется интерпретатором языка движка 1С, который является многопотоковым. Строка с текстом запроса довольно сложная, и ее построение может занимать значительное время. И когда управление передается ветви с выполнением запроса, строка с текстом запроса еще не готова. Отсюда получаются и пустые отчеты как у Ardi.
  • 0

#19   Max_Nj

Max_Nj

      Ищу работу!!!

    • Пользователи
    • PipPipPipPipPipPipPipPip
    • Сообщений: 506
    • Регистрация: 07-August 08
    • Откуда:Мелитополь

Отправлено 06 April 2011 - 14:10

Вот еще "шедевр":
Если ФлагЗаписи = 1 Тогда
[...]
// На всякий случай...
Если ФлагЗаписи = 1 Тогда
[...]
КонецЕсли;
КонецЕсли;
  • 1

#20   UACLUB

UACLUB

      Генералиссимус

    • Администраторы
    • Сообщений: 1426
    • Регистрация: 29-October 11
    • Откуда:Украина

Отправлено 05 January 2012 - 15:22

Есть целый ресурс по этой теме http://govnokod.ru/1c, несколько раз руки чесались туда сбросить подобные перлы
  • 0
Стремись к невозможному - получишь максимум!


Обратно в Прочее 1С 7.7


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных