Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Так как все-таки правильно сделать подписку ПриПроведении для типовых УТ/КА/ERP ?

Доброго дня, коллеги.

Наткнулся на закрытую тему
в комментарии () указано решение, но! Это ведь в корне неверно!
Есть поясняющая картинка

Типичный обработчик ОбработкаПроведения():
ПроведениеСервер.ИнициализироватьДополнительныеСвойстваДляПроведения(Ссылка, ДополнительныеСвойства, РежимПроведения);

Документы.КорректировкаРеализации.ИнициализироватьДанныеДокумента(Ссылка, ДополнительныеСвойства);

ПроведениеСервер.ПодготовитьНаборыЗаписейКРегистрацииДвижений(ЭтотОбъект);
...
// тут доработки движений, которые я хочу перенести в подписку!

...
ПроведениеСервер.ЗаписатьНаборыЗаписей(ЭтотОбъект);
ПроведениеСервер.ВыполнитьКонтрольРезультатовПроведения(ЭтотОбъект, Отказ);



И как же мне изменить движения в подписке, если контроль уже прошёл? Что, заново инициализировать доп.свойства, изменить движения конкретного регистра, записать и снова выполнить контроль? Что-то это дико звучит с точки зрения производительности.
Ответ: () Ты про что, когда есть подписка на регистр?
Вопрос: 1C 7.7 + SQL 2008 или все-таки SQL 2000?

Коллеги, может быть кто-то ужел сделал взвешенный выбор?
Общеизвестно, что 1С 7.7 работает с SQL сервером мягко говоря, "своеобразно".
Для того, чтобы все-таки пытаться подружить ее с 2008 SQL сервером, нужны веские доводы, потому что задача нетривиальна и чревата отсроченными проблемами совместимости.
На данный момент уже существуют решения, позволяющие запускать и вродебы как-то сносно эксплуатировать базы 7.7 по 2008 SQL Server, но чем больше разного рода наработок, особенно из ряда 1С++ и проч. тем выше вероятность нестабильной работы.
Собственно, первый вопрос, на который надо дать ответ, прежде чем браться за такое мероприятие:
что, собственно, может дать перевод БД 1С 7.7 с SQL 2000 на SQL 2008?
Для конкретики, давайте рассмотрим случай с торговой базой размером 130 Гб. Сервер XEON 5660 х 2, 32 Гб оперативной памяти, 6 SSD, 4 обычных SASA винта. Распределенной базы нет, много кода под 1С++. 100 пользователей, 50% в-основном вносят данные, 50% в основом пользуются отчетами

Модератор: Тема перенесена из форума "Microsoft SQL Server".
Ответ: Злой Бобр,

какой же вы злой)))) во превых с 7.7 я работаю же 12 лет..писано переписано немыслимо сколько всего. во вторых никогда с клюшками проблем не было и нет...сервер подвернулся по дешевке был куплен...и удивлен что выхлопа 0. Пинать вы можете салаг в нужном направлении. А SQL сожрет столько памяти сколько есть хоть 64 гига если не стоит ограничений..и full и simple без разницы уже проверено.
Вопрос: v7: Как правильно посчитать сумму с НДС

Всем доброго вечера!
Такая ситуация, есть старенькая 1с ПУБ. Всегда в ней выбивали накладные и всех всё устраивало. Но тут начали работать с сетью и у нас с ними не сходятся конечные суммы в накладных.
НДС учитывается и он сверху.
Продаем штучный товар 1728 штук по цене 100,13. НДС 18%
У них сумма 204163,20 у нас 204169,08. Как я понял у них считается так: цена+18% - потом это округляется, потом умножается на количество. У нас же цена умножается на количество, потом находится и прибавляется ндс 18% и уже в конце сумма округляется.
Как все таки правильно? И что делать, бодаться с сетью или переписывать программу, чтобы каждое математическое действие сразу округляло до 2х знаков после запятой?
Спасибо!
Ответ: можно и как они считать, только не округлять
Вопрос: Как сделать приход денежных средств из центральной кассы в Рознице 2.2?

Необходимо отразить поступление денег из кассы офиса в касу магазина (Розница 2.2). В Рознице касса офиса отмечена как "Касса управляющей системы" - настроен обмен между УТ и Розницей. В Рознице 2.2 создаю ПКО с видом "Поступление ДС из другой кассы" - но в этом случае требуется в качестве реквизита также ввести "Документ расхода ДС" с типом "РКО". Пробую ввести РКО - но при этом в поле "Касса-отправитель" появляется выбор только кассы магазина (а мне нужна центральная касса офиса). Как всё-таки правильно перенести денежные средства?
Ответ: Подниму тему...
Вопрос: Подписки на событие. Обработка проведения. КА 2.4

Добрый день всем!
Обращаюсь за помощью, так как ни разу такого не делал. но вот пришло время.
Есть у меня 5 разных документов (типовые), есть регистр накопления (добавленный), мне необходимо делать записи в регистр при проведении этих документов.
Что и где дописать в каждый из документов я знаю, чтобы они сделали записи по регистру, а вот я не очень бы хотел вносить в них изменения, и хотел бы сделать подписку на событие для всех этих документов. Сделал, написал код, для одного документа работает, но не могу понять как в одну подписку на событие или как вообще сделать так, чтобы данная подписка работала на все 5 документов, хотя поля из Источников не всегда совпадают. Один из документов делает приход в регистр(отражение зп в финучете), а остальные 4 расход(все ведомости).
Ответ:
все, справился, спасибо всем )
Вопрос: Проблема с обновлением типовой Бухгалтерии 2.0.64.31

Есть типовая бухгалтерия 2.0.64.31, которую надо обновить до 2.0.64.39.
Всё делаю как обычно, через Конфигурация-->Поддержка-->Обновить конфигурацию. Выбираю файл с обновлением и начинается процесс. В ходе обновления никаких окон с ошибками не возникает. Однако после обновления релиз поставщика, как и основной базы по-прежнему остаётся 2.0.64.31.
Пробовал снимать с поддержки и сравнивать с CF-ником 2.0.64.38 - результат тот же.
Пробовал обновить в режиме Предприятия - на шаге "разрешение подключений новых соединений" вылезает ошибка приложения Microsoft HTML и предлагается его перезапустить. После перезапуска всё начинается заново и доходит до того же момента.
Пробовал проверить Chkdbfl - ошибок не обнаружено. Также выгружал-загружал базу.
Что я делаю не так и как всё-таки её обновить?
Ответ: Naumov, vladko Огромная благодарность за скорый ответ, коллеги!
Вычистил из кэша 6 гигов мусора и сразу всё стало на свои места. Тему можно закрыть.
Вопрос: Не могу прикрутить новый документ в типовую ЗУП 3.0

Доброго времени суток! Уважаемые, подскажите... На предприятии очень хитрый расчет Бригадных нарядов. С помощью показателей, шаблонов и т.п. решение не было найдено ( Был создан документ, там происходят все расчеты, а затем записываются в показатели. Появляется запись в регистре сведений - Значение разовых показателей расчета зарплаты (для сотрудников). Но при заполнении документа - Начисление зарплаты, по виду расчета где участвуют показатели - пусто. Если сделать данное действие типовым документом - Данные для расчета ЗП, так же создается идентичная строка и данные показателей попадают в документ Начисление ЗП ((( Может присутствует еще один регистр вспомогательный? Не знаю (( За раннее благодарен!
Ответ: Хотел чтоб из одного (моего) документа всё делалось... А не вводить два новых... Один Оплату по тарифу чтоб рассчитывалась, а второй сдельщина
Вопрос: Установка 1С Предприятие в Ubuntu 16.04 LTS. Как это сделать?

Имеются файлы для установки 1С Предприятие:
- 1c-enterprise83-client_8.3.6-1999_amd64.deb
- 1c-enterprise83-client-nls_8.3.6-1999_amd64.deb
- 1c-enterprise83-thin-client_8.3.6-1999_amd64.deb
- 1c-enterprise83-thin-client-nls_8.3.6-1999_amd64.deb

Как все это добро правильно установить на Ubuntu 16.04 LTS? Читал, что после установки зависимости нужно будет устранять.
Как все это успешно сделать?
Ответ: Dethmontt, Спасибо.

Хотелось бы конкретики по данным имеющимся в наличии файлам. С пояснениями если можно. Буду очень признателен. Раньше где-то читал что устранять зависимости надо будет после установки. Тоже хотелось бы узнать как это сделать.
Вопрос: Досрочный выход из отпуска по уходу за ребенком, изменили условия - в табеле все равно ОЖ

Доброго времени суток!
Сотрудник ушел в отпуск по уходу за ребенком и возвращается досрочно. На основании "Отпуск за уходом за ребенком" создаем "Изменение условий оплаты отпуска", указываем дату прекращения отпуска и с той же даты начинаем плановое начисление "Оклад по дням" (первичное, начисление за работу полную смену в пределах нормы времени). Документ двигает плановые начисления сотрудников организаций (прекращает пособия до 1, 5 и 3 лет и отпуск по уходу за ребенком без оплаты, начинает оклад по дням), с даты прекращения отпуска состояние сотрудника "Работает". Начисление з/п заполняется окладом, а в табель тянет ОЖ. Попытка провести "Возврат на работу" или "Кадровое перемещение", понятное дело, провалилась - уже есть запись регистра "состояние сотрудника". Как же все-таки убрать злополучное ОЖ из табеля и поиметь явку?
Спасибо.

1С:Предприятие 8.3 (8.3.8.1652).
Управление производственным предприятием, редакция 1.3 (1.3.84.2)
Ответ:
Ну да, такое нельзя, у Вас бы при сдаче в ПФР отчетности там бы по стажу то же полезло.
Нельзя сотрудника который в отпуске переводить. Его либо переводят после того как он вышщел из отпуска либо на один день отзывают из отпуска переводят и опять отправляют. А нельзя так что штатку меняем всем оклады и делаем это перемещением. (ну часто просто так делают)
Вопрос: Как правильно сделать движения по регистрам?

Подскажите пожалуйста такой момент.

Если мне надо получить остатки по 3-м регистрам чтобы потом их списать в ноль что мне нужно сделать?

Регистры накопления имеют галку разделение итогов.
В свойствах конфигурации управляемый режим блокировки
В свойствах регистров которые нужно поправить управляемый режим блокировки

В документе:
Удаление движений: Удалять автоматически при отмене проведения.
Запись движений при проведении: Записывать выбранные.

1) Поставить галки Записывать = Истина.
2) Очистить на всякий случай движения перед проведением ( Движения.ИмяРегистра.Очистить() )
3) Поставить галки БлокироватьДляИзменения = Истина; (убираю разделение итогов)
4) Выбираю остатки
5) Блокирую регистры по результату запроса
6) Формирую движения с противоположным остатка знаком

Все так?
Ответ:
В итоге:

Код:
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
   
    //Ставим метку записывать
    Движения.БП_РасхожденияУпрРегл.Записывать = Истина;
    Движения.ЗИ_ОстаткиПоРаспределениюТТН.Записывать = Истина;
    Движения.ЗИ_ОстаткиЭлеватораПоМестамХранения.Записывать = Истина;
   
    //Чистим предыдущие движения на случай перепроведения документа из обычной формы.
    Движения.БП_РасхожденияУпрРегл.Очистить();
    Движения.ЗИ_ОстаткиПоРаспределениюТТН.Очистить();
    Движения.ЗИ_ОстаткиЭлеватораПоМестамХранения.Очистить();
   
    //Вылючаем режим разделения итогов
    Движения.БП_РасхожденияУпрРегл.БлокироватьДляИзменения = Истина;
    Движения.ЗИ_ОстаткиПоРаспределениюТТН.БлокироватьДляИзменения = Истина;
    Движения.ЗИ_ОстаткиЭлеватораПоМестамХранения.БлокироватьДляИзменения = Истина;
   
    //Пишем пустой набор записей, флаг ОстаткиНоменклатуры.Записывать = Истина не снимается
    Если РежимПроведения = РежимПроведенияДокумента.Оперативный Тогда
        Движения.БП_РасхожденияУпрРегл.Записать();
        Движения.ЗИ_ОстаткиПоРаспределениюТТН.Записать();
        Движения.ЗИ_ОстаткиЭлеватораПоМестамХранения.Записать();
    КонецЕсли;
   
    //Блокируем регистры перед изменением
    Блокировка = Новый БлокировкаДанных;   
   
    ЭлементБлокировки         = Блокировка.Добавить("РегистрНакопления.ЗИ_ОстаткиПоРаспределениюТТН");
    ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
    Если ЗначениеЗаполнено(ЭтотОбъект.Урожай) Тогда
        ЭлементБлокировки.УстановитьЗначение("Урожай", ЭтотОбъект.Урожай);
    КонецЕсли;
   
    ЭлементБлокировки         = Блокировка.Добавить("РегистрНакопления.ЗИ_ОстаткиЭлеватораПоМестамХранения");
    ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
    Если ЗначениеЗаполнено(ЭтотОбъект.Урожай) Тогда
        ЭлементБлокировки.УстановитьЗначение("Урожай", ЭтотОбъект.Урожай);
    КонецЕсли;
    Если ЗначениеЗаполнено(ЭтотОбъект.ВидКультуры) Тогда
        ЭлементБлокировки.УстановитьЗначение("Номенклатура", ЭтотОбъект.ВидКультуры);
    КонецЕсли;
   
    ЭлементБлокировки         = Блокировка.Добавить("РегистрНакопления.ЗИ_ОстаткиЭлеватораПоМестамХранения");
    ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
    Если ЗначениеЗаполнено(ЭтотОбъект.ВидКультуры) Тогда
        ЭлементБлокировки.УстановитьЗначение("ВидКультуры", ЭтотОбъект.ВидКультуры);
    КонецЕсли;

    Блокировка.Заблокировать();  
   
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    ЗИ_ОстаткиПоРаспределениюТТНОстатки.Документ,
                   |    ЗИ_ОстаткиПоРаспределениюТТНОстатки.Организация,
                   |    ЗИ_ОстаткиПоРаспределениюТТНОстатки.Склад,
                   |    ЗИ_ОстаткиПоРаспределениюТТНОстатки.Урожай,
                   |    ЗИ_ОстаткиПоРаспределениюТТНОстатки.МестоХранения,
                   |    ЗИ_ОстаткиПоРаспределениюТТНОстатки.Номенклатура,
                   |    ЗИ_ОстаткиПоРаспределениюТТНОстатки.ВесНеттоОстаток КАК ВесНетто,
                   |    ЗИ_ОстаткиПоРаспределениюТТНОстатки.ВесПоВлажностиОстаток КАК ВесПоВлажности,
                   |    ЗИ_ОстаткиПоРаспределениюТТНОстатки.ВесПоСорнойПримесиОстаток КАК ВесПоСорнойПримеси,
                   |    ЗИ_ОстаткиПоРаспределениюТТНОстатки.ВлажностьОстаток КАК Влажность,
                   |    ЗИ_ОстаткиПоРаспределениюТТНОстатки.СорнаяПримесьОстаток КАК СорнаяПримесь
                   |ИЗ
                   |    РегистрНакопления.ЗИ_ОстаткиПоРаспределениюТТН.Остатки(&МоментВремени, Урожай = &Урожай) КАК ЗИ_ОстаткиПоРаспределениюТТНОстатки
                   |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ИНАГРО_ДополнительныеРеквизитыНоменклатуры КАК ИНАГРО_ДополнительныеРеквизитыНоменклатуры
                   |        ПО ЗИ_ОстаткиПоРаспределениюТТНОстатки.Номенклатура = ИНАГРО_ДополнительныеРеквизитыНоменклатуры.Номенклатура
                   |ГДЕ
                   |    ИНАГРО_ДополнительныеРеквизитыНоменклатуры.ВидКультуры.Родитель = &ВидКультуры
                   |;
                   |
                   |////////////////////////////////////////////////////////////////////////////////
                   |ВЫБРАТЬ
                   |    ЗИ_ОстаткиЭлеватораПоМестамХраненияОстатки.Организация,
                   |    ЗИ_ОстаткиЭлеватораПоМестамХраненияОстатки.Склад,
                   |    ЗИ_ОстаткиЭлеватораПоМестамХраненияОстатки.Урожай,
                   |    ЗИ_ОстаткиЭлеватораПоМестамХраненияОстатки.МестоХранения,
                   |    ЗИ_ОстаткиЭлеватораПоМестамХраненияОстатки.Номенклатура,
                   |    ЗИ_ОстаткиЭлеватораПоМестамХраненияОстатки.ВесОстаток КАК Вес,
                   |    ЗИ_ОстаткиЭлеватораПоМестамХраненияОстатки.ВесПоВлажностиОстаток КАК ВесПоВлажности,
                   |    ЗИ_ОстаткиЭлеватораПоМестамХраненияОстатки.ВесПоСорнойПримесиОстаток КАК ВесПоСорнойПримеси
                   |ИЗ
                   |    РегистрНакопления.ЗИ_ОстаткиЭлеватораПоМестамХранения.Остатки(
                   |            &МоментВремени,
                   |            Номенклатура = &ВидКультуры
                   |                И Урожай = &Урожай) КАК ЗИ_ОстаткиЭлеватораПоМестамХраненияОстатки
                   |;
                   |
                   |////////////////////////////////////////////////////////////////////////////////
                   |ВЫБРАТЬ
                   |    РН_РасхожденияУпрРегл.ВидКультуры,
                   |    РН_РасхожденияУпрРегл.Номенклатура,
                   |    РН_РасхожденияУпрРегл.ВидОперации,
                   |    РН_РасхожденияУпрРегл.ЗачетныйВесОстаток КАК ЗачетныйВес,
                   |    РН_РасхожденияУпрРегл.ВлажностьОстаток КАК Влажность,
                   |    РН_РасхожденияУпрРегл.СорнаяПримесьОстаток КАК СорнаяПримесь,
                   |    РН_РасхожденияУпрРегл.ВесПоВлажностиОстаток КАК ВесПоВлажности,
                   |    РН_РасхожденияУпрРегл.ВесПоСорнойПримесиОстаток КАК ВесПоСорнойПримеси
                   |ИЗ
                   |    РегистрНакопления.БП_РасхожденияУпрРегл.Остатки(&МоментВремени, ВидКультуры = &ВидКультуры) КАК РН_РасхожденияУпрРегл";
   
    Момент = ?(РежимПроведения = РежимПроведенияДокумента.Оперативный, Неопределено, ЭтотОбъект.МоментВремени());
    Запрос.УстановитьПараметр("МоментВремени", Момент);
    Запрос.УстановитьПараметр("ВидКультуры",   ЭтотОбъект.ВидКультуры);
    Если ЗначениеЗаполнено(ЭтотОбъект.Урожай) Тогда
        Запрос.УстановитьПараметр("Урожай", ЭтотОбъект.Урожай);
    Иначе
        Запрос.Текст = СтрЗаменить(Запрос.Текст, "И Урожай = &Урожай", "");
        Запрос.Текст = СтрЗаменить(Запрос.Текст, "Урожай = &Урожай", "");
    КонецЕсли;

   
    РезультатЗапроса = Запрос.ВыполнитьПакет();
       
    //Делаем движения по регистрам
    Выборка = РезультатЗапроса[0].Выбрать();
    Пока Выборка.Следующий() Цикл
        Движение = Движения.ЗИ_ОстаткиПоРаспределениюТТН.Добавить();
        Движение.ВидДвижения         = ВидДвиженияНакопления.Приход;
        Движение.Период              = ЭтотОбъект.Дата;
        Движение.Документ              = Выборка.Документ;
        Движение.Организация         = Выборка.Организация;
        Движение.Склад                  = Выборка.Склад;   
        Движение.Урожай             = Выборка.Урожай;   
        Движение.МестоХранения        = Выборка.МестоХранения;   
        Движение.Номенклатура         = Выборка.Номенклатура;   
        Движение.ВесНетто             = -Выборка.ВесНетто;   
        Движение.ВесПоВлажности     = -Выборка.ВесПоВлажности;   
        Движение.ВесПоСорнойПримеси    = -Выборка.ВесПоСорнойПримеси;   
        Движение.Влажность             = -Выборка.Влажность;   
        Движение.СорнаяПримесь         = -Выборка.СорнаяПримесь;   
    КонецЦикла;   
    Выборка = РезультатЗапроса[1].Выбрать();
    Пока Выборка.Следующий() Цикл
        Движение = Движения.ЗИ_ОстаткиЭлеватораПоМестамХранения.Добавить();
        Движение.ВидДвижения         = ВидДвиженияНакопления.Приход;
        Движение.Период              = ЭтотОбъект.Дата;
        Движение.Организация         = Выборка.Организация;
        Движение.Склад                  = Выборка.Склад;   
        Движение.Урожай             = Выборка.Урожай;   
        Движение.МестоХранения        = Выборка.МестоХранения;   
        Движение.Номенклатура         = Выборка.Номенклатура;   
        Движение.Вес                 = -Выборка.Вес;   
        Движение.ВесПоВлажности     = -Выборка.ВесПоВлажности;   
        Движение.ВесПоСорнойПримеси    = -Выборка.ВесПоСорнойПримеси;   
    КонецЦикла;
    Выборка = РезультатЗапроса[2].Выбрать();
    Пока Выборка.Следующий() Цикл
        Движение = Движения.БП_РасхожденияУпрРегл.Добавить();
        Движение.ВидДвижения         = ВидДвиженияНакопления.Приход;
        Движение.Период              = ЭтотОбъект.Дата;
        Движение.ВидКультуры         = Выборка.ВидКультуры;
        Движение.Номенклатура         = Выборка.Номенклатура;   
        Движение.ЗачетныйВес        = -Выборка.ЗачетныйВес;   
        Движение.Влажность             = -Выборка.Влажность;   
        Движение.СорнаяПримесь        = -Выборка.СорнаяПримесь;   
        Движение.ВесПоВлажности        = -Выборка.ВесПоВлажности;   
        Движение.ВесПоСорнойПримеси    = -Выборка.ВесПоСорнойПримеси;   
    КонецЦикла;
   
КонецПроцедуры