Казаков Андрей

13
Рейтинг

user646807_kazako.a911
Андрей Казаков



  •   Регистрация: 28.11.2016 (7 лет назад)

  •   Был(а) на сайте: 26.04.2024

Друзья
  • Сергей
Подписчики 1

Рейтинг 13

Программное заполнение адреса контактной информации контрагента в Бухгалтерии 3

Инструменты и обработки Программист Бухгалтер Пользователь Платформа 1С v8.3 1С:Бухгалтерия 3.0 Абонемент ($m) Внешняя обработка (ert,epf) Мастера заполнения

Пример программного заполнения адреса контрагента в Бухгалтерии 3 и других решениях с БСП 3.1.7.х. Для корректного заполнения контактной информации необходимо кроме заполнения основных данных сформировать XML-представление данных, пример заполнения в публикации.

1 стартмани

05.04.2023    3797    6    user646807_kazako.a911    0       

6

Ошибка при обновлении "Для одного ссылочного кода существует более одной таблицы в базе данных"

Инструменты и обработки Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m) Внешняя обработка (ert,epf) Инструментарий разработчика

После перехода на новую платформу поменялась (появилась) проверка на дублирование внутренних идентификаторов объектов метаданных. Возможная ошибка при обновлении "Для одного ссылочного кода существует более одной таблицы в базе данных". Лечится изменением идентификатора объекта метаданных.

1 стартмани

30.10.2019    16765    21    user646807_kazako.a911    16       

7

Комментарии

DevРедактирование табличной части объекта с помощью СКД#32 12.04.24 13:14
Я как всегда написал тонны индусского кода

1. ТабДок, Данные
2. ТабДок, В его ячеках содержатся ссылки на зависимые ячейки
3. ТабДок формулы

Меняем в ТабДоке1 значение в А1, алгоритм обращается к ячейке А1 в ТабДоке2 смотрит зависимые ячейки (например А2), в ТабДоке3 обращается, рассчитывает формулу в ячейке А2

Далее опять смотрит есть ли зависимости у ячейки А2, и рекурсивный паровозик поехал
Но, было недовольство, так как зависимостей могло быть сотни, какдый раз рекурсивно все это считать по тысяче обращений к ТабДокам, все это работало медленно, не как в Экселе, поэтому...

На форме расчета сделал двумерный массив где дублировал все значения ТабДока1 с данными
Регистр в который закинул полный алгоритм рассчета каждой ячейки, он тоже при открытии подгружается в массив, типа кэш, и вуаля

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

Но возникает вопрос, какую последовательность выполнять в 1 очередь. Например если от ячейки А1 зависят данные в В1 и В2 можно сначала рассчитать В1, потом В2, потом вычислить зависимые от них ячейки, но в фото, пример 2 в этом случае ошибка. Есть шанс каждый при каждом вычислении что уйдет в исключение, не обновит данные. Можно вычислять рекурсивно А1 потом В1 потом D1, потом B2, тогда пример 2 работает ок, но теперь в примере 1 ошибка.

Нужно было для сложного расчета расходов материала, временных затрат рабочих и загруженности переделов, так как все это было уже реализованно в злой эксельке, и мененджеры так привыкли, далее на основании расчета создается стандартная спецификация и там уже дальше +- по методичке.

До этого подобную задачу решал еще более криво, стандартно расчеты Excel надо было перенести в 1С, там расчет лизнга, куева туча входных параметров, листов, расчетов, в общем полный ужс, в этом только создать разберется, поэтому при создании каждого документа для расчета, подгружал эту рыбу эксель в память, транслировал изменения ТабДока в эксель, из эксель обратно в ТабДок, и как то работало.

Прикрепленные файлы:

Паровозик.jpg
DevКак программно узнать каталог текущего пользователя?#60 08.04.24 19:21
(59)
Ты еще один любитель пустых бесполезных сообщений?
DevКак программно узнать каталог текущего пользователя?#58 08.04.24 17:26
(57)
И че Начиная с 8.3.1 этот код вернет?!11

КаталогДокументов() "Описание:
Предоставляет доступ к стандартному каталогу документов."

Сохранил файл в папку "1" на раб столе, полный путь "C:\Users\1c_support\Desktop\1"

Вот это
Код
КаталогДокументов = Новый Файл(КаталогДокументов());
КаталогПользователя = КаталогДокументов.Путь;

возвращает "C:\Users\1c_support\Documents"
а надо
"C:\Users\1c_support\Desktop\1"

Вообще мысли, что на профильных сайтах больше специалистов по троллингу сидит чем специалистов, вопросы за последнюю неделю: 1. Как програмно получить имя каталога, в который пользователь сохранял последний раз файл; 2. Как отловить Пометку удаления "НаКлиенте", чтобы оповещение послать в другие формы, что надо данные обновить; 3. Как отследить нажатие клавиши клавиатуры на таб доке и т.п. главное все вопросы до меня уже кто-то задавал, и все это решается, и на мой взгляд все это НУЖНО для удобства работы пользователей, но вместо ответов в каждой теме "а зачем да почему", то-ли гуманитарии одни вместо программистов сидят чтобы пофлудить на форумах то-ли еще чего, я хз. Сорян, накипело.

Решил проблему в лоб, сохраняю при записи файла путь к каталогу в регистр
DevПарсинг сайта, тег script#27 17.01.24 11:48
(26)
Не понимаю, зачем кому-то твой кривой сервис? В чем твоя цель? Сделать кривой сервис? Писать ненужные сообщения? Я свои задачи решаю, сливаю базу к себе, чтобы продавать к ней доступ не через АПИ, а через свое расширение, которое имеет нормальный пользовательский интерфейс, обменивается с моим сервером, плюс в том, что не надо специалиста никакого для разработки, если есть 1С с более менее типовым функционалом на БСП, подключаешь расширение и работаешь.

Живой пользователь, который заходит на 70-80 страниц это вполне нормально, данные могут быть абсолютно разными, кто-то целый рабочий день сидит и информацию анализирует. И если 8 часовой рабочий день разделить на 80 страниц это 6 минут/страница.

Сейчас все работает через АПИ, можно покупать информацию один раз и продавать ее же сколько угодно раз, но так как есть возможность разработать бота который будет сливать всю информацию бесплатно почему бы не заняться такой автоматизацией. Если бы в этом крылись какие-то нерешаемые задачи. Думал, что есть более простые варианты извлечения информации из тега Script, но если их нет ничего страшного, задача все равно будет решена.

Но самый главный вопрос, зачем ты все время пишешь про свой авносервис?
DevПарсинг сайта, тег script#25 16.01.24 22:20
(24)
Ну хз, что там неестественного пользователь скролит, бот скролит, пользователь по ссылке проходит, бот проходит, пользователь копирует информацию, бот копирует, можно даже не копировать а с картинки распознавать. Нужны только новые последние данные с отбором по дню, это где-то 700-800 страниц в сутки, например если разбить на 10 машин то всего по 70-80 стр/сутки с разных айпи, весьма похоже на пользователя, добавить задержки между проходами по ссылкам. Манёвры небольшие. В общем хз на сколько эти данные с вебизора спасут информацию. К тому же очень странно со стороны сервиса отдавать по апи одну информацию, через браузер другую. С сервисом работает много людей и зачем он такой нужен если достоверность равна нулю.
DevПарсинг сайта, тег script#23 16.01.24 22:03
(22)
Понял, как ты определишь что это AutoIt, а не человек тыкает по сайту. Дай адрес своего сервиса.
DevПарсинг сайта, тег script#20 16.01.24 21:53
(18)
Ясно, сервиса нет, просто видимо вбросил.
DevПарсинг сайта, тег script#19 16.01.24 21:52
(17)
Ты же тут жжешь, вбросил какую-то ветку свою, за неимением знаний, и теперь выкручиваешься, как прорвало.
Сомневаюсь что selenium так просто распознается, зачем вбрасывать силы в большой проект, уже достаточно известный, чтобы потом специалист джуниор в пару кликов его забанил.

У меня изначально было решение использовать AutoIt, это решение в лоб, скролить листы, распознавать текст с экрана, позиционировать курсор на нужном слове, ссылке, проходить на страницу, копировать весь текст или часть.
DevПарсинг сайта, тег script#16 16.01.24 21:42
(13)
Мне кажется, кроме тебя ни у кого ничего не рвётся.
DevПарсинг сайта, тег script#15 16.01.24 21:38
(14)
При чем тут твой АПИ кривой. Где он и где федеральный ресурс.