|   |   | 
| 
 | Нашел бесплатный ChatGPT, который генерит код 1с | ☑ | ||
|---|---|---|---|---|
| 0
    
        Повелитель 22.10.24✎ 10:03 | 
        В телеграмме он называет вот так:
 ChatGPT 4 | Midjourney | Gemini | Claude Пару месяцев назад мне нужно было найти процедуру по переводу даты в миллисекунды, нашел, вот они: Функция ДатуВTimestamp(пДата = Неопределено) Экспорт
	Возврат Формат(Число(?(ТипЗнч(пДата) = Тип("Дата"), пДата, ТекущаяДата())-Дата("19700101")),"ЧН=0; ЧГ=0");
КонецФункцииФункция TimestampВДату(пДатаТС) Экспорт
	Попытка
		Возврат Дата("19700101")+?(ТипЗнч(пДатаТС) = Тип("Строка"), Число(пДатаТС), пДатаТС);
	Исключение
		Возврат Неопределено;
	КонецПопытки;
КонецФункцииА вот как сделал ChatGPT на мой запрос "Напиши процедуру перевода даты в миллисекунды" Конечно! Вот пример процедуры на 1С, которая переводит дату и время в миллисекунды с начала эпохи Unix (1 января 1970 года): Процедура ПеревестиДатаВМиллисекунды(Дата) Экспорт
    // Проверяем, что входной параметр является датой
    Если Не ТипЗнч(Дата) = Тип("Дата") Тогда
        Сообщить("Некорректное значение даты.");
        Возврат;
    КонецЕсли;
    // Получаем количество секунд с начала эпохи Unix
    СекундыС1900 = Дата - '1970-01-01 00:00:00';
    
    // Переводим секунды в миллисекунды
    Миллисекунды = СекундыС1900 * 1000;
    // Выводим результат
    Сообщить("Дата в миллисекундах: " + Миллисекунды);
КонецПроцедуры▎Как использовать: Вы можете вызвать эту процедуру, передав ей дату и время. Например: ПеревестиДатаВМиллисекунды('2023-10-01 12:30:00'); // Пример для 1 октября 2023 года, 12:30:00 Вполне не плохо. Вот ещё запрос "Напиши запрос по регистру накопления Продажи, чтобы в него попало топ 10 самых лучших контрагентов" Чтобы получить топ-10 лучших контрагентов по продажам из регистра накопления "Продажи", вы можете использовать следующий запрос в 1С: ВЫБРАТЬ
    Контрагенты.Наименование КАК Контрагент,
    Сумма(Продажи.Сумма) КАК ОбщаяСумма
ИЗ
    РегистрНакопления.Продажи КАК Продажи
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
    ПО Продажи.Контрагент = Контрагенты.Ссылка
ГДЕ
    Продажи.Дата >= '2023-01-01' // Укажите нужный период
    И Продажи.Дата <= '2023-12-31' // Укажите нужный период
GROUP BY
    Контрагенты.Наименование
ORDER BY
    ОбщаяСумма Убывение
LIMIT 10;▎Объяснение: 1. ВЫБРАТЬ: выбираем наименование контрагента и сумму продаж. 2. ИЗ: указываем регистр накопления "Продажи" и соединяем его со справочником "Контрагенты". 3. ГДЕ: фильтруем данные по дате, чтобы выбрать только продажи за определенный период. 4. GROUP BY: группируем результаты по наименованию контрагента. 5. ORDER BY: сортируем результаты по общей сумме продаж в порядке убывания. 6. LIMIT 10: ограничиваем выборку до 10 контрагентов с наибольшей суммой. Не забудьте заменить даты на нужные вам, если требуется другой период. Тут тоже неплохо, чуточку напильником доточить и в продакшн )) Думаю надо с сообществом поделится данной инфой )) | |||
| 1
    
        Волшебник 22.10.24✎ 10:07 | 
        Где же ссылка на этот Телеграм?     | |||
| 2
    
        Волшебник 22.10.24✎ 10:08 | 
        Кстати, за запрос к РегистрНакопления.Продажи
 без виртуальной таблицы Обороты надо отрывать его виртуальные руки | |||
| 3
    
        Волшебник 22.10.24✎ 10:31 | 
        Запрос дерьмо...
 ВЫБРАТЬ ПЕРВЫЕ 10 Контрагенты.Наименование КАК Контрагент, Сумма(Продажи.СуммаОборот) КАК ОбщаяСумма ИЗ РегистрНакопления.Продажи.ОБОРОТЫ(&С, &По) КАК Продажи ПО Продажи.Контрагент = Контрагенты.Ссылка Продажи.Дата >= '2023-01-01' // Укажите нужный период И Продажи.Дата <= '2023-12-31' // Укажите нужный период Контрагенты<DEL>.Наименование ORDER BY ОбщаяСумма Убывение | |||
| 4
    
        mmg 22.10.24✎ 10:10 | 
        (0) Еще скажи, что запрос работает     | |||
| 5
    
        Повелитель 22.10.24✎ 10:42 | 
        (1) @GPT4Tbot
 https://t.me/GPT4Tbot | |||
| 6
    
        Волшебник 22.10.24✎ 10:12 | 
        Правильный запрос
 ВЫБРАТЬ ПЕРВЫЕ 10
    Продажи.Контрагент КАК Контрагент,
    СУММА(Продажи.СуммаОборот) КАК СуммаПродаж
ИЗ РегистрНакопления.Продажи.Обороты(&С, &По) КАК Продажи
УПОРЯДОЧИТЬ ПО СуммаПродаж УБЫВ | |||
| 7
    
        Волшебник 22.10.24✎ 10:12 | 
        (6)+ Это ж насколько надо быть тупым ботом, чтобы не справиться с таким простым запросом 1С...     | |||
| 8
    
        Повелитель 22.10.24✎ 10:14 | 
        (4) Запрос не работает. Чутка напильником и вот рабочий:
 ВЫБРАТЬ ПЕРВЫЕ 10 Контрагенты.Наименование КАК Контрагент, СУММА(Продажи.Стоимость) КАК ОбщаяСумма ИЗ РегистрНакопления.Продажи КАК Продажи ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты ПО Продажи.Контрагент = Контрагенты.Ссылка ГДЕ Продажи.Период >= &ДатаНач И Продажи.Период <= &ДатаКон СГРУППИРОВАТЬ ПО Контрагенты.Наименование УПОРЯДОЧИТЬ ПО ОбщаяСумма Запрос конечно в плане оптимизации, очень плохой, но работает же | |||
| 9
    
        mmg 22.10.24✎ 10:16 | 
        (7) Модель училась на MySQL (на что нам намекает LIMIT). То, что она вообще что-то выдает на 1С - чудо     | |||
| 10
    
        Волшебник 22.10.24✎ 10:16 | 
        (8) Садись, два.     | |||
| 11
    
        mmg 22.10.24✎ 10:19 | 
        (8) "Напильником" не годится. Надо, чтобы человек, который не знает SQL, вот так простыми словами сказал, что ему нужно и получил, что ему нужно. "Напильник" он брать не будет. Поэтому нужны сразу работающие запросы     | |||
| 12
    
        Повелитель 22.10.24✎ 10:19 | 
        (10) Я бы написал запрос примерно как в (6) 
 Это же я просто переделал запрос бота в рабочий )) У меня жена работает в ВУЗе преподавателем по ИТ. Программирование преподает. В этом году особый бич, большинство начали делать свои работы по программированию через ChatGPT. Эх. Так что скоро ждем такой код как в (8) нашей родной 1с ))) | |||
| 13
    
        Волшебник 22.10.24✎ 10:20 | 
        (12) Значит скоро всем кабзда     | |||
| 14
    
        Повелитель 22.10.24✎ 10:21 | 
        (11) Процедуру по переводу в миллисекунды, вроде верную выдал. Я пока не знаю, что ему скормить ещё.     | |||
| 15
    
        Волшебник 22.10.24✎ 10:26 | 
        (14) Переменная называется "С1900", а дата задана 1970 год.
 СекундыС1900 = Дата - '1970-01-01 00:00:00'; Дерьмо | |||
| 16
    
        RomanYS 22.10.24✎ 10:22 | 
        (13) она уже здесь. Разве не из-за этого 1сникам уже по полмиллиона готовы платить?     | |||
| 17
    
        mikecool 22.10.24✎ 10:23 | 
        (12) 21 год работы с 1с... ужас     | |||
| 18
    
        dmt 22.10.24✎ 10:26 | 
        (9) ей пофиг что выдавать, так что это не чудо     | |||
| 19
    
        mmg 22.10.24✎ 10:27 | 
        (13) Ничего страшного. Просто в ближайшем будущем будет невозможно продать знание левого соединения за 200 тысяч в месяц. Всего-то     | |||
| 20
    
        Повелитель 22.10.24✎ 10:27 | 
        Так вот ещё:
 Напиши функцию входной параметр ФИО, а на выходе фамилия и инициалы Вот пример функции на языке 1С, которая принимает ФИО в виде строки и возвращает фамилию и инициалы: Функция ПолучитьФамилиюИИнициалы(ФИО)
    // Разделяем строку на части
    Части = СтрРазделить(ФИО, " ");
    
    // Проверяем, что частей достаточно
    Если ОбщаяДлина(Части) < 3 Тогда
        Возврат ""; // Или обработка ошибки
    КонецЕсли;
    // Получаем фамилию и инициалы
    Фамилия = Части[0];
    Имя = Части[1];
    Отчество = Части[2];
    Инициалы = Лев(Имя, 1) + "." + Лев(Отчество, 1) + ".";
    
    // Формируем результат
    Результат = Фамилия + " " + Инициалы;
    
    Возврат Результат;
КонецФункции
▎Объяснение: 1. СтрРазделить: разбивает строку ФИО по пробелам. 2. Проверка длины: убеждаемся, что в строке есть хотя бы три части (фамилия, имя, отчество). 3. Получение фамилии и инициалов: берем первую часть как фамилию и первые буквы имени и отчества. 4. Формирование результата: объединяем фамилию и инициалы в одну строку. Вы можете использовать эту функцию, передавая ей строку с ФИО. Например: Результат = ПолучитьФамилиюИИнициалы("Иванов Иван Иванович"); Сообщить(Результат); // Выведет "Иванов И.И." | |||
| 21
    
        formista2000 22.10.24✎ 10:29 | 
        хоть бы кто НАЧАЛОПЕРИОДА и КОНЕЦПЕРИОДА использовал бы... :-/     | |||
| 22
    
        Garykom гуру 22.10.24✎ 10:32 | 
        И совсем скоро подобный код, сгенерированный ИИ, будет в самолетах...     | |||
| 23
    
        dmt 22.10.24✎ 10:40 | 
        (20) блин, ну на кого такие простые примеры рассчитаны?
 Опытному - работающее решение быстрее самому написать (+ кодирование и так времени минимум занимает, вообще навык атрофируется). Пока пишешь, думаешь о предметке и вспомнишь что бывают всякие оглы и другие исключения Начинающему - надо понимать, что т.к. в решениях зачастую на горку меда приходится ложка говна, никогда не знаешь чем тебя накормят в этот раз Остаются только вообще нулевые, у которых даже идей нет, как решать задачу - тогда можно идею у жпт стырить (но с таким же результатом можно было и погуглить) | |||
| 24
    
        Hmster 22.10.24✎ 10:59 | 
        (0) Скоро во всех типовых?     | |||
| 25
    
        Волшебник 22.10.24✎ 11:04 | 
        В движке мисты есть 1 (одна) строчка, сгенерированная ChatGPT:
 text = text.replace(/<a href="(\/topic\/\d+)">(.*?)<\/a>#(\d+)/g, '<a href="$1#$3">$2</a>'); Догадайтесь, что она делает. | |||
| 26
    
        vbus 22.10.24✎ 11:19 | 
        Похоже якоря прикручивает (25)     | |||
| 27
    
        Волшебник 22.10.24✎ 11:20 | 
        (26) Всё верно. Вставляет якорь внутрь ссылки. 
 ChatGPT мастерски работает с регулярками и JavaScript. | |||
| 28
    
        CepeLLlka 22.10.24✎ 11:20 | 
        (25)Ответ от ChatGPT
 Этот код предназначен для изменения HTML-ссылок, которые ссылаются на определённые темы и комментарии внутри этих тем. Он использует регулярное выражение для поиска и замены частей этих ссылок. Давайте разберём подробнее: 1. text.replace(...): Этот метод JavaScript используется для поиска и замены текста внутри строки text. Первый аргумент — это шаблон поиска (регулярное выражение), а второй — строка замены. 2. / <a href="(\/topic\/\d+)">(.*?)<\/a>#(\d+)/g: Это регулярное выражение, которое определяет шаблон для поиска. Разберём его по частям: /: Символы начала и конца регулярного выражения. <a href=": Находит текст, начинающийся с <a href=". (\/topic\/\d+): Это первая захватывающая группа. \/topic\/: Соответствует строке "/topic/". Обратный слеш \ используется для экранирования символа /, поскольку он имеет специальное значение в регулярных выражениях. \d+: Соответствует одной или более цифрам. Это предполагает, что ID темы состоит из цифр. Захватывающая группа сохраняет эту часть текста для последующего использования в строке замены как $1. ">(.*?)<\/a>: ">: Соответствует закрывающей кавычке атрибута href и символу >. (.*?): Это вторая захватывающая группа. .*?: Соответствует любому символу (.) ноль или более раз (*), но как можно меньше (?). Это важно, чтобы не захватить текст до следующей ссылки <a>. Эта группа сохраняется как $2. Это текст ссылки, который отображается пользователю. <\/a>: Соответствует закрывающему тегу ссылки. Снова используется обратный слеш для экранирования /. #(\d+): Это третья захватывающая группа. #: Соответствует символу решетки, который обычно используется для обозначения якоря (ссылки на определённый фрагмент страницы). (\d+): Соответствует одной или более цифрам. Это, вероятно, ID комментария. Эта группа сохраняется как $3. g: Это флаг, который означает "global". Он указывает, что нужно заменить все вхождения шаблона в строке text, а не только первое. 3. <a href="$1#$3">$2</a>: Это строка замены. <a href="$1#$3">: Создает новый тег <a> с изменённым атрибутом href. $1: Заменяется на текст, захваченный первой группой (часть URL с ID темы). #: Символ решетки. $3: Заменяется на текст, захваченный третьей группой (ID комментария). Таким образом, новый href указывает непосредственно на комментарий. $2: Заменяется на текст, захваченный второй группой (текст ссылки). </a>: Закрывающий тег ссылки. В итоге, этот код изменяет ссылки вида <a href="/topic/123">Название темы</a>#456 на <a href="/topic/123#456">Название темы</a>. Он эффективно объединяет ссылку на тему и ссылку на комментарий в одну ссылку, ведущую непосредственно к комментарию. Это улучшает навигацию, позволяя пользователю перейти сразу к нужному комментарию, минуя страницу темы целиком. | |||
| 29
    
        Волшебник 22.10.24✎ 11:21 | 
        (28) Молодец!     | |||
| 30
    
        eklmn гуру 22.10.24✎ 11:36 | 
        (0) да ты звездабол, в теме "бесплатно" и (7) не соответсвует     | |||
| 31
    
        mikecool 22.10.24✎ 11:44 | 
        (28) шикарно ) где еще найдешь такое подробное описание? ))     | |||
| 32
    
        Волшебник 22.10.24✎ 11:47 | 
        (31) Да, это прекрасное применение ChatGPT. Можно закинуть в него пример программного кода и попросить объяснить. Так сам быстро учишься.     | |||
| 33
    
        Адинэснег 22.10.24✎ 11:49 | 
        (0) спеца не сдаст этот ваш гпт     | |||
| 34
    
        CepeLLlka 22.10.24✎ 11:55 | 
        (33)Наоборот же.. Там по сути будет просто копипаст.     | |||
| 35
    
        ptiz 22.10.24✎ 12:41 | 
        (0) Мне больше нравится нейро от Яндекса. Работает с реальными источниками, дает ссылки. Очень грамотно отвечает.     | |||
| 36
    
        Dzenn гуру 22.10.24✎ 16:30 | 
        Твой ЧатГПТ идеальный руководитель проекта — уверенности на 143%, знаний на троечку. Может "продавать" проект заказчику и вместе с этим не будет лезть с уточнениями к разработчику.     | |||
| 37
    
        Волшебник 22.10.24✎ 18:51 | 
        (36) А он умеет рявкать?     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |