Отправляет email-рассылки с помощью сервиса Sendsay

1С: грабли, камни и бриллианты

  Все выпуски  

1С: грабли, камни и бриллианты


Служба Рассылок Subscribe.Ru
Здравствуйте, уважаемые!
Вашему взору представлена рассылка "1С: грабли, камни и бриллианты" и
я ее ведущий Кружаев Валерий  krug@tula.net

Выпуск 7.

Сначала прошу простить за вынужденное молчание. Заболел я.
А когда очухался, просмотрел почту, и увидел, что рассылка-то оказывается нужна
вам. Очень приятно.
Сегодня разговор будет в письмах.
Я буду стараться находить ответы на ваши вопросы даже если это и не совсем в
кругу моих знаний и интересов.
Например, компонента "Расчет" по большому счету для меня темный лес.
А причина, по которой я не уделял ей внимания, проста - такую программу, как
"Зарплата и кадры" целесообразно применять при большом числе работающих, а такое
количество у нас традиционно на больших, а значит в основном бюджетных и потухающих
предприятиях. Стало быть, там не очень разгуляешься со своими доработками (платными,
естественно).
Ну а зачем изучать то, что потенциально не будет иметь спроса.
Если у кого-то есть другое мнение, я его с интересом выслушаю, да и читателям
наверное будет не скучно.
А вот использование этой компоненты в других целях мне было бы интересно, если
бы не отсутствие лишнего времени на ее глубокое изучение.

Итак, письма.
Письмо 1:
_____________________________________________________________

Во-первых, хочу сказать, что Ваша рассылка "1С: грабли, камни и
бриллианты" дело нужное и полезное. Но, исходя из названия рассылки, я
ожидал получать информацию о разных нюансах, хитростях,
недокументированных возможностях, принципах 1С. И это ИМХО следует
ставить основной задачей рассылки. А уроки и домашние задания, хотя и
нужные вещи, не дадут возможности НЕновичкам в 1С узнать что-то
принципиально новое.

Теперь мой виш.
Хотелось бы узнать о принципах работы с регистрами.
Я понимаю, что со временем эта тема будет рассматриваться в рассылке,
поэтому может быть можно пока осветить такой вопрос: при проведении
документов оперативного учета какие нужно выполнять проверки
состояния регистров и для чего нужно выполнять временный расчет
регистров.
--
С наилучшими пожеланиями
    $corpio
_____________________________________________________________

Регистры устроены таким образом, чтобы на определенный момент иметь возможность
быстро получить остатки без излишних манипуляций и расчетов. Такой момент времени
называется Точкой Актуальности (ТА) итогов. Обычно это последний проведенный
документ. Но ТА может быть пересчитана на любой другой произвольный момент, если
допустим, требуется провести подробный анализ состояния дел неделю назад. Если
решать эту задачу "в лоб", то каждое обращние с запросами к регистру не в ТА
будет сопровождаться пересчетом содержимого регистров с начала текущего месяца.
Итоги на начало месяца прописываются в регистрах обязательно. А вот если сместить
ТА на тот момент времени, который мы изучаем, пересчета производиться не будет.
При проведении документов они будут делать движения регистров на тот момент,
когда документ записан. Хорошо, если это последний документ, а если вы отпускаете
товар вчерашним днем, у вас могут возникнуть проблемы. Ведь по большому счету
вы можете товары и в минус загнать. Чтобы избежать этого, выполняется пересчет
регистров на момент до этого документа и по этим итогам мы уже можем определить,
хватит ли нам товаров. Регистрам всй равно, что там у них хранится, и они послушно
проглотят движение в минус, а вы потом будете удивляться и долго разгребать.
Кроме того, существует в 1С так называемая последовательность документов, которая
в принципе может быть не одна, но на практике обычно одной достаточно. Что это
такое? Это список, включающий  документы и регистры, манипуляции с которыми особенно
критичны. И система отслеживает все случаи проведения документов вне потока,
задним числом и сдвигает Границу Последовательности на точку самого раннего такого
документа. Это дает знать пользователю, что результаты сложных отчетов могут
оказаться некорректными.
Например, отчет по продажам товаров с вычислением прибыли может дать неправильные
результаты, потому что он основывается на разнице суммы продажи и списываемой
себестоимости товара. И если сумма продажи - величина более менее фиксированная,
то себестоимость товара, хранящаяся в регистре, очень даже критична к различным
вклиниваниям разных докуметов типа забытой приходной накладной. Если цена закупки
товара изменилась, к примеру, в бОльшую сторону, без этого документа картинка
получится гораздо приятней взору шефа, чем реальность. А вот после его проведения
она окажется гораздо плачевнее, чем реальная.
Поясню на цифрах.
Допустим, мы закупили 100 шт некоего товара по 10 р за штуку. Общая себестоимость
закупленного товара в этом случае составит 1000 рублей. Потом мы продаем 20 шт
по 11 рублей за штуку. Моя расходная накладная списывает 20х10р = 200 рублей
себестоимости товара, а оборот составил 20х11р = 220 рублей. Поскольку и списание,
и начисление оборота производит один документ, я легко получаю грязную прибыль
с этих продаж, выдернув из движений этого документа себестоимость проданного
товара и оборот по его продаже.
Разница: 220 - 200 = 20 рублей. Красота!
А потом оказывается, что днем раньше такой товар был закуплен в объеме 100 шт
по 11 рублей за штуку. (1100 рублей)
И позже мы его приходуем задним числом. Общая себестоимость имевшегося товара
составит в этом случае 2100 рублей и на свои продаваемые 20 шт мы будем списывать
2100/200 = 10,5 рублей за единицу * 20 шт = 210 рублей. Оборот составил всё те
же 220 рублей, стало быть прибыль составила 220 - 210 = 10 рублей, что уже не
так красиво. Но расходная накладная уже проведена и гласит, что мы получили 20
рублей. Искажение фактов, однако. Для полноты картины её бы перепровести надо,
и тогда она спишет реальную себестоимость. Но мы можем и не знать об этом. В
этом случае мы смотрим, а где у нас граница последовательсти находится, и в случае
если она не совпадает с точкой актуальности, мы ее восстанавливаем путем перепроведения
документов с помощью встроенных средств 1С.
Советую делать это всегда, когда шеф потребует какие-нибудь отчеты от ваших пользователей.
Мне приходилось краснеть и бледнеть, доказывая шефу, почему его прибыль, показанная
неделю назад не совпадает с прибылью за тот же период, но сформированная сегодня.
Однако, разболтался я. У кого что болит, как говорится. Точнее, болело.
Возвращаясь к письму, вкратце:
Перед проведением документа следует проверить, актуальны ли итоги, с помощью
команды
ИтогиАктуальны()
, и если итоги не актуальны, значит документ перепроводится или проводится задним
числом. А значит, если он использует какие-либо данные из регистров, их нужно
пересчитать. По умолчанию они выдают цифры на Точку Актуальности.
Пересчитываем регистры, которые созданы как объекты с помощью команды
СоздатьОбъект("Регистр.***")
Из них же берем и остатки, и движения.
Конечно, это не относится к документам, которые добавляют что-то к регистрам.
Ведь нам не важно, есть там что-то или нет.
А вот если мы вычитаем что-то, тогда да.
Забыл указать, что получить данные не из точки актуальности без явного пересчета
регистров мы можем с помощью специального средства встроенного языка - механизма
Запросов. Впрочем, это не освобождает от пересчета регистров, только происходит
он неявно.


Письмо 2:
__________________________________________________________

Подскажите если сможете решение одной проблемки.
Работаю в Зарплате+Кадры 034 релиз (Предприятие 018).
Меня интересует как создать подробный отчет по
сдельщикам наподобие того, какой открывается из:
Справочник-Сотрудники-Данные расчета-(Зарплата.....) Бригадные наряды
Проблема в том, что расчет не включает ни номера наряда ни дату.
Хотелось бы создать Отчет по каждому сотруднику чтобы
он показывал заработанные суммы и каким нарядом и датой эта сумма получена.
Конфигурация немного не типовая, я кое-чего там правил.
Заранее благодарен.
--
С уважением, Михаил.
__________________________________________________________

Пока скажу только, что я отвечу обязательно, и в ближайшем выпуске залезу в Зарплату
и разберусь как помочь.
А пока может кто-то из читателей подскажет? Напишите мне, если знаете как.



Письмо 3:
__________________________________________________________

Здравствуйте, Валерий!
Я сегодня обнаружила Вашу рассылку "1С: грабли, камни и бриллианты".
Хочу ответить Андрею ( рассылка 4, письмо 1 ). Я тоже начинающий
программист 1С. Есть хороший сайт  www.mista.ru
Там есть учебники для начинающих и продолжающих. Мне очень
понравились.

С уважением, Людмила.
                         mailto:luda@mail.uralaz.ru
__________________________________________________________

Спасибо, Людмила. Надеюсь, ваша информация поможет нашей братии.
Особенно приятно наблюдать в нашем сообществе женщин, что еще пока достаточно
редкое явление.



Письмо 4:
__________________________________________________________

Здравствуйте Валерий,

Задача которую Вы поставили перед собой довольно грандиозная и в какой-то
мере неблагодарная.
Но "прогресс общества" определяют немеркатильные представители этого же
общества ;-))
И получать отклики Вы будете не сразу - поэтому обижаться на молчание на мой
взгляд пока рано - аудитория не сформировалась, а может быть ее надо было
сформировать?!
Я искренне желаю Вам успехов в во всех областях Вашей деятельности - потому
как Вы добровольно приносите себя в жертву на "алтарь образования" :-))

С уважением,
Кайрат Примбетов.
__________________________________________________________

Благодарю, Кайрат.
Хочу только заметить, что некоторая меркантильность у меня присутствует:
Во-первых, объясняя другому, лучше понимаешь сам.
Во-вторых, ваши письма часто наводят на хорошие идеи, т.е. мы с вами являемся
коллективным генератором идей, котрыми я намерен делиться с аудиторией. Мне одному
столько не проглотить. Да я и так не страдаю от отсутствия заказов.
Так что я выдал вам всё честно, какие выгоды я с этого имею сейчас.
Ну может еще рекламой вас побалую, когда аудитория подрастет :)
Мне кажется, что правда всегда убедительнее, чем ложь. А вы как думаете?


Письмо 5:
__________________________________________________________

Подтверждаю, что читаю Вашу рассылку.
Следовательно, она мне нужна.
--
С уважением,
 Ксения

mailto:ksenia@step.uu.ru
__________________________________________________________

Еще одна женщина в нашем сообществе. :)
Успехов Вам, Ксения!


Письмо 6:
__________________________________________________________

  подписался на Вашу рассылку только сегодня (т.к. только сегодня
  утром пришли "Новости Subscribe.Ru - 28 февраля 2002 года" в которой
  и прочитал о новой рассылке по 1С).

  Прочитал весь архив и хочу сразу приободрить и настроить на
  продолжение рассылки.

  Спасибо за полезную информацию, предоставляемую Вами, но не кипятитесь,
  если иногда буду задавать глупые-непрофессиональные-"детские" вопросы   :-)

  С Уважением
~~~~~~~~~~~~~~~~~~~~~~~
Голдаев Сергей
Корпорация "ИгроСервис"
ICQ: 13109695
__________________________________________________________

Напротив, вопросы приветствуются даже детские. Потому как именно они на поверку
оказываются самыми мудрыми.
Кто заметил, что "Король то голый" ? :)
Хотя, конечно, не хотелось бы цитировать документацию и уж тем более отсылать
вас к странице такой-то этой документации. Ну кому это понравится?



Письмо 7:
___________________________________________________________

  Добрый день.
    Не подскажите ли вы как можно получить код ошибки(состояния) при неудачной
попытке выполнить запрос,
сформировать выборку по субконто...
    Проблема в том что я хочу автоматически преносить остатки на начала года
в пустую базу. Когда я через Оле
объект(полная база) формирую запрос по остаткам по счетам на конец года - по
некоторым счетам запрос выполняется но
при процедура ВыбратьСубконто(1) возвращает ноль. Счет заведомо не пустой более
того я подозреваю что он слишком
громоздкий (учет по трем субконто с nnn-ым количеством итогов в каждом из них)
и системе не хватает памяти или чего-то
подобного, но хотелось бы знать точно.
    Если чем-то сможите помочь пожалуйста помогите.
___________________________________________________________

Этот вопрос слишком обширный и требует рассмотрения в отдельном выпуске.
А здесь ограничусь только, что слишком крупные куски информации я бы переносил
не через OLE, а через
оператор
ЗначениеВФайл(), который позволяет обмениваться любыми данными, в т.ч. таблицами
значений посредством текстового файла.
Вдобавок, если структура данных у вас почти идентична, вам может даже не понадобиться
заботиться о создании недостающих элементов справочников и т.д., поскольку система
сама попытается их создать. Этот оператор использует внутреннее представление
данных, по типу ЗначениеВСтрокуВнутр()
А читать такой файл нужно с помощью оператора
ЗначениеИзФайла()
Механизм OLE предполагает транзакционный принцип хранения данных и требует серьезных
ресурсов, если много данных одновременно гонять. Ну а когда начнется работа файла
подкачки... Много систем уже зависали на этом. Неблагодарное это дело.
Хотя может в W2000 проблема решается, я то консерватор и пока работаю на 98-й.
Игрушек у меня нет, так что за полгода висла она раза два. Зато мои любимые маленькие
программульки всякие спокойно запускаются. Или я не прав насчет 2000-й?
Так что перешвырнуть несколько документов - это одно, а запросы делать лучше
в родной базе, а переносить вспомогательными штуками без OLE.
А может дело в недостаточной отлаженности этого механизма?



Ну вот вроде и всё сказал на сегодня.

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

Только хочу предупредить, что во избежание недоразумений ваши письма должны иметь
явное указание на разрешение или запрещение публикации их в рассылке.
По умолчанию считается, что письмо публиковать разрешено.
Если вы в теле письма указали адрес, я буду его тоже указывать.
Но специально из реквизитов письма адрес извлекаться не будет.
Это нормально и общепринято. Не так ли?
Впрочем, как известно, известные люди имеют в своем использовании больше денежных
знаков...
Так что решать вам, светиться или отсиживаться.

До встречи, господа!

Написать ведущему krug@tula.net
Рассылки Subscribe.Ru
1С: грабли, камни и бриллианты


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное