Автор Тема: Старая и новая методика проведения документов Много вопросов  (Прочитано 7428 раз)

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

bma

  • Новичок
  • *
  • Сообщений: 6
  • ФИО: Инкогнито
Прошла курс обучения по платформе! В итоге в материалах нет четких правил при выборе методики проведения документов - новой или старой! Это очень печально. У меня много вопросов, на которых нет ответа:
 1. Если я при записи набора использую данные не из самого регистра, а данные из любой  виртуальной таблицы этого регистра (остатки, обороты, в регистрах бухгалтерии движения с субконто, в регистрах расчета таблицы с данными графика, с данными по базе и т.д., т.е. ЛЮБЫЕ виртуальные таблицы) в этом случае это считается тот же самый регистр или нет?
 2. Если при записи набора я использую данные не какого-то определенного поля, а например Поле1+Поле2 В ЗАПРОСЕ сложила, а не на клиенте, то что здесь? как быть? Новая методика?
 3. Я при записи данных набора, хочу использовать временную промежуточную переменную при записи регистра. Т.е. я прочитала значение какого-нибудь поля из моего регистра, записала это значение в переменную и уже при записи набора использую эту ПЕРЕМЕННУЮ. Вот если так хитро, то можно новую методику использовать или нет?
 4. Если я читаю регистр, в нем например есть поле Партия (ПКО), в этом поле я далее лезу в запросе через точку уже к самим данным ПКО за полем 'Сумма ПКО' (в запросе это НЕ явный join). Взяла поле  'Сумма ПКО' и использую его при записи набора при проведении. Получается, что методика новая, так? Я залезла в регистр, но по сути данные беру же не из него, а физически из другой таблицы. Хотя запрос к моему регистру написан.
 Дорогие форумчане! Если Вы ОДНОЗНАЧНО ТОЧНО знаете ответы на мои вопросы, чтобы не попасть в заблуждение, очень буду признательна!!!

GROOVY

  • Администратор
  • Старожил
  • *****
  • Сообщений: 284
  • ФИО: Павел Чистов
Все пункты в методике оперативного проведения вообще не имеют отношения. Вам бы разобраться в том что это такое и зачем реально используется.


bma

  • Новичок
  • *
  • Сообщений: 6
  • ФИО: Инкогнито
Если често не ожидала услышать от Вас такого ответа или я не совсем поняла, что Вы имеете ввиду... Почему не имеет? Все четыре пункта что ли не имеют??? Не соглашусь с Вами! В Вашем ответе никакой конкретики нету! Вот кстати пример, у нас в методичке есть оперативное проведение и используется не сам регистр Продажи, а совсем другой регистр Продажи.Остатки - и проведение старое! Вопрос - почему, регистры то разные и можно было бы сделать новым! Если мы разговариваем именно в той терминологии, в какой 1С сам и создает, то 1С сам себе и противоречит.

GROOVY

  • Администратор
  • Старожил
  • *****
  • Сообщений: 284
  • ФИО: Павел Чистов
Цитата bma ()
не сам регистр Продажи, а совсем другой регистр Продажи.Остатки

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

 Смысл оперативного проведения - минимизация времени транзакции и количества блокируемых таблиц в транзакции. А что и как читать - это уже следствие метода.

bma

  • Новичок
  • *
  • Сообщений: 6
  • ФИО: Инкогнито
А что если при записи регистра использовать не данные самого регистра, а использовать эти же данные при записи, но через промежуточную переменную? Мудрено немного, но это не соизмеримо с --> минимизация времени транзакции и количества блокируемых таблиц в транзакции. Вот по крайней мере в жизни я бы очень задумалась над такой реализацией. И не подскажете вот интересно, вот Движения.Управленческий.БлокироватьДляИзменения = истина это блокировка только на запись или еще на чтение? Очень смахивает на то, что только на запись.

GROOVY

  • Администратор
  • Старожил
  • *****
  • Сообщений: 284
  • ФИО: Павел Чистов
Как вообще переменная связана с блокируемыми таблицами? Кто Вам такую ересь преподавал?

 Вот про методику оперативного проведения: http://1c.chistov.pro/2013/07/blog-post_25.html
 Вот про "БлокироватьДляИзменения": http://expert.chistov.pro/public/196565/

bma

  • Новичок
  • *
  • Сообщений: 6
  • ФИО: Инкогнито
Я не могу писать в регистр то, что из этого же регистра и я прочитала, если хочу новую методику. А если я возьму промежуточную переменную и буду именно ее писать в регистр, то тогда по логике получается, что можно использовать новую методику, но это только предположение. Про блокируемые таблицы мне никто не преподавал, просто до 1С я занималась реляционными БД и серверной частью тоже, там сама занималась таблицами и транзакциями. Если уж такая тема зашла, то признаюсь, я как раз программист с уровня СУБД, это как раз те программисты, которых так сильно не любят программисты 1С и кстати наоборот, разность у них в восприятии, хотя сложно и там и там...(( Я подумала, это мы тут все смертные, а Вы то наверное вхожи в круги, вхожи в круги разработчиков платформы 1С, может вместе общаетесь или дружите и всякие гадкие вопросы им можете задавать)) А знаете, а вот что если я возьму и вот например что-нибудь такое сделаю, придумаю что-нибудь чтобы обойти ..... ну и т.д. Все равно я узнаю про эту переменную, мне интересно)

HitTheRoadJack

  • Пользователь
  • **
  • Сообщений: 15
  • ФИО: Дмитрий
Уважаемая bma, что-то вас действительно куда-то не туда понесло. "Новую" методику вы можете использовать в любом случае при списании остаточных данных. Но тут вопрос уже встает о рациональности. Если перед тем как сформировать записи вам, к примеру, надо посчитать себестоимость, то эти данные вы не можете получить, скажем, из табличной части документа. Вам понадобится запрос, причем хороший такой запрос, с isnull-ами и соединением таблиц. И это лишь для того, чтобы сформировать свои записи. А далее по новой методике вы должны свой набор записать и построить еще один запрос, который проверит вам остатки(не ушли ли вы в минус), он уже полегче, но все же запрос к регистру. Итого 2 запроса. В то время как по старой методике вам достаточно будет одного запроса, который по своей сути совпадает с запросом номер 1 из предыдущего повествования. В итоге вы выигрываете в производительности вашей информационной системы. Может быть на таких маленьких объемах таблиц это будет вообще не ощутимо, но если промасштабировать это на реальные базы, то это вполне хороший выигрыш. По поводу самих задач: в некоторых из задач явно проскальзывают намеки на использование 2ух регистров в опер учете. Скажем к примеру: себестоимость считается не в разрезе складов, а в целом по товару, а остатки учитываются в разрезе тех самых складов. Тут вы можете блеснуть знанием новой методики оперативного проведения и реализовать контроль остатков по новой методике, а себестоимость списывать по старой. Но даже если такого не сказано (зачастую в задачах по опер. учету учитываются и остатки, и себестоимость), и если у вас будет время на экзамене, чтобы распараллелить это и тут, то бога ради. Я думаю экзаменатор поощрит ваше желание шагать в ногу со временем и оптимизировать проведение даже в таких простеньких конфигурациях.

demos

  • Новичок
  • *
  • Сообщений: 4
  • ФИО: demos
списание по старой методике идет в таком порядке:
 1. Блокируем регистр
 2. Проверяем есть ли товар на складе
 3. Списываем товар
 тут нужно блокировать, а если забыли заблокировать, то какой нибудь другой компьютер влезет между п.2 и п.3. и товар спишем в минус

 по новой же методике можно без блокировок:
 1. Списываем товар
 2. Проверяем, не ушли ли в минус.
 чужое вмешательство исключено. Но как сказал предыдущий автор, если возникает необходимость вычисления дополнительных параметров - напр. себестоимость, то рациональнее по старой методике )

НатальяЮГ

  • Пользователь
  • **
  • Сообщений: 33
Попытка изобразить старую и новою методике схематически  :)
Критика приветствуется.

vaasec

  • Пользователь
  • **
  • Сообщений: 35
Попытка изобразить старую и новою методике схематически  :)
Критика приветствуется.
1. Я бы добавил, что при использовании старой методики надо очищать регистр.
   Движения.ОстаткиТоваровСтоимость.Записывать = Истина;
   Движения.Записать();


2. Вывод по использованию новой методике не совсем правильный. Новую методику используем тогда, когда не надо читать данные из регистра в который потом пишем.
3. Не указанно в схеме где Записывать = Истина;
4. В новой методике в разделе важно добавил бы - используем управляемые блокировки.

НатальяЮГ

  • Пользователь
  • **
  • Сообщений: 33
По пунтам 1 и 3:
Согласна, но просто нет места.
Я начала с того, что обозначила все подробности и получилось очень длинно и совершенно нечитаемо. Приняла правило: одна проблема=один лист.
Поэтому приходится рисовать по минимуму, только то что критически важно (с моей точки зрения :-\), без подробностей. В данном случае это место блокировки и контроля остатков.
Движения.Записать() указала исключительно для того чтобы помнить когда наступает момент блокировки при БлокироватьДляИзменения.

По пункту 2:
Новую методику я понимаю как упрощение действий при проведении. То есть отсутствие необходимости получать реальные данные о себестоимости на момент документа. Списываем количество, проверяем есть ли позиции по которым ушли в минус и все!

По пункту 4:
Совершенно согласна, переделала схему.

Спасибо!