Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
07 июн 2025, 06:36

Флуд по Экзамену

Автор sergathome, 18 янв 2011, 17:16

0 Пользователей и 1 гость просматривают эту тему.

sergathome

Вот как Вы думаете, что происходит при отмене проведения ? А происходит следующее - базе данных отдаётся команда уничтожить записи, соответствующие движениям. Что это значит ? Сервер базы данных ищет в огромной таблице эти самые записи и метит их как удалённые. При этом сами записи физически из БД не удаляются, естественно.... И одно дело когда просто отменяется проведение, тут деваться некуда, но вот когда документ перепроводится, то есть в его движениях может и изменений-то никаких нет, реквизит шапки поправили или ещё чего... Ну так вот, до программистов 1С на 15 году существования всей этой системы наконец-то допёрло, что это маразм. И 8.2 проблему решили официально. Но некоторые несознательные личности никак не хотят в это въезжать ;)
Что-то мне подсказывает, что на экзамене им это "популярно" объяснят отрицательной оценкой...

pershinsergei

ну тогда реши по радченко партионный учет, и выложи решение.
Я понимаю что в проведении 8.2 нужно сперва записывать а потом ловить то что ушло в минус, дело в другом. на экзамене не является ошибкой проведение как в 8.1 главное правильно установить управляемые блокировки!!!!

pershinsergei

да и не называй меня на ВЫ, я еще не дорос)))) мне всего 22 и я работаю только 3 месяца))))

pershinsergei

короче вот нарыл:

1. На экзамене - Свойство в документе должно быть Удалять при отмене проведения
2. Писал уже тысячу раз - Режим проведения на экзамене не проверяется.Оперативное или неоперативное проведение это не важно, не заморачивайтесь с этим, не нужно прописывать отдельный алгоритм для оперативного проведения. Проще всего у всех документов запретить оперативное проведение.
Когда нужно применять новую методику?
Когда все данные, которые вы хотите записать в регистр НЕ НУЖНО получать из этого же регистра. Тогда мы записываем эти данные в регистр, а потом производим проверку на правильность записи. Чаще всего это контроль остатков, но могут быть и другие ситуации.
Если значение какого либо показателя этого регистра нам необходимо до записи (напирмер для расчета себестоимости при списании) используется старая методика.

Особенности новой методики
После записи данных в регистр происходит контроль на правильность заполнения. При старой методике мы получали данные как правило на МоментВремени() документа, движения которого мы СОБИРАЕМСЯ записать в регистр. При новой методике мы УЖЕ записали данные соответственно на МоментВремени() документа мы НЕ "УВИДИМ" только что записанные движения. Для того чтобы и эти движения попадали в результат запроса, в параметр МоментВремени необходимо передать Новый Граница(МоментВремени(), ВидГраницы.Включая)

еще  стоит добавить что и для всей конфигурации нужно ставить свойство "Режим управления блокировкой данных" в "Управляемый" (по умолчанию в каркасной стоит "Автоматический").

sergathome

Хорошо, Сергей, давай на ты. Я действительно немножко постарше, но писал на других языках и поддерживал, в частности, систему альтернативную 1С-Склад и Торговля. Поэтому опыта в программировании под платформу 1С у меня не много. Зато я прекрасно знаю её недостатки ;)
По нарытым пунктам :
1. Безосновательное утверждение оторванное от контекста. Это всё равно как заявить, что всегда надо одевать шипованную резину независимо от погоды и сезона. В твоём решении это действительно так, так как ручная отмена тупо имитирует это. Но в случае проведения "поверх" (по технологии 8.2 без отмены прежних движений) это, мягко говоря, спорно ;)
2. Вообще не понял о чём это - "коня и трепетную лань" (с). "Новую" (уже терминологическая ошибка - никакая это технология не новая, её можно было использовать и раньше, правильнее называть её дефолтной технологией 8.2) технологию нужно использовать везде, где это позволит избежать отмены проведения. Это настолько очевидно, что если ты меня спросишь почему я впаду в ступор и буду долго думать с чего начинать объяснение ;)

Вот насчёт Новый Граница(МоментВремени(), ВидГраницы.Включая) очень похоже на правду. У Радченко этот вопрос тоже обойдён, я долго чесал репу по этому поводу и не пришёл ни к какому выводу, тем более, что в задаче 1.1 этот вопрос не всплывает...

Если в каркасной дефолтное состояние блокировок - Автоматический, то это значит, что в ней включён режим совместимости с 8.1 ;))) Обрати уже на это внимание. Дефолтное состояние при отключенном режиме совместимости - Управляемый. На самом деле это надо сразу тогда уточнить у экзаменатора, это добавит сразу очков 100% :)


sergathome

Я переделал свой 1.1. Там тоже чуши предостаточно было. Цимес вот в чём - МоментВремени() показывает на момент ДО появления "своих" движений. Таким образом их и учитывать не надо.
http://depositfiles.com/files/9ld3bl9sc

sergathome

Намеднись добыл хасп для клиент-серверной версии, вчера поставил под PostgreSQL и немножко погонял. Первое неожиданное наблюдение - последовательность выставления блокировок и их типов абсолютно фиолетова, никакая последовательность к ошибке не приводит, в том числе и Автоматическая после Управляемой...

sergathome

Сергей, я добил тему с проведением документов под 8.2. Ты был во многом прав - технология с постконтролем используется в случаях, только когда это принципиально возможно или специально оговорено. Блокировку при контроле остатков надо выставлять так как делал ты, установка параметра БлокироватьДляИзменения не приводит к немедленной установке блокировки, а только указывает на необходимость её установки при записи набора. Отменять движения по контролируемому регистру в этом случае тоже надо, хотя есть исключения. Что касаемо проверок вида ЭтоНовый() и Проведён, то они оба лишены смысла, так как в процедуре обработки проведения их значения не зависят от состояния документа до начала проведения. Радченко - гад фашистский, так всё это описал, что башку сломишь.
Посему прошу удалить мои решения задач и тд, как вводящие в заблуждение. Как только смогу размещу новые решения. В том числе задачу 1.7, которую как раз и надо делать с постконтролем...

pershinsergei

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

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

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск