|
Нашел бесплатный 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) А он умеет рявкать?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |