Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 8, свеженьких 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Войти | Зарегистрироваться )

12 страниц V   1 2 3 > » 

>  Предоплата по фискалу?
vbi
Отправлено: 16.08.18, 10:27


Оратор
Иконка группы

Группа: Местный
Сообщений: 292
Регистрация: 06.01.11
Из: Украина, Луцк
Пользователь №: 6047


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

Так ли это, и вообще предусмотрена ли такая предоплата по законодательству? И пробитие по фискалу товара, уже оплаченого ранее?

Є п. 7 розд. III Порядку реєстрації та застосування реєстраторів розрахункових операцій, що застосовуються для реєстрації розрахункових операцій за товари (послуги), затвердженого наказом Міністерства фінансів України від 14.06.2016 № 547,
і Стаття 2 Закону України від 06 липня 1995 року № 265/95-ВР «Про застосування реєстраторів розрахункових операцій у сфері торгівлі, громадського харчування та послуг» із змінами та доповненнямиа ще відповідно до п. 1 та п. 11 ст. 3 Закону суб'єкти господарювання, які здійснюють розрахункові операції в готівковій та/або в безготівковій формі (із застосуванням платіжних карток, платіжних чеків, жетонів тощо) при продажу товарів (наданні послуг) у сфері торгівлі, громадського харчування та послуг, а також операції з приймання готівки для подальшого її переказу зобов'язані: проводити розрахункові операції на повну суму покупки (надання послуги) через зареєстровані, опломбовані в установленому порядку та переведені у фіскальний режим роботи РРО з роздрукуванням відповідних розрахункових документів, що підтверджують виконання розрахункових операцій; проводити розрахункові операції через РРО з використанням режиму попереднього програмування найменування (для пального із зазначенням коду товарної підкатегорії згідно з УКТ ЗЕД), цін товарів (послуг) та обліку їх кількості.

Враховуючи викладене вище, розрахункові операції у разі проведення розрахунків за попередню (авансову) оплату за товар (послугу) проводяться через РРО з зазначенням у касовому чеку «передоплата товарів»?Я правильно розумію?


  Форум: Работа с торговым оборудованием · Просмотр сообщения: #144478 · Ответов: 5 · Просмотров: 248
 

>  При закрытии - зависает
vbi
Отправлено: 04.07.18, 19:52


Оратор
Иконка группы

Группа: Местный
Сообщений: 292
Регистрация: 06.01.11
Из: Украина, Луцк
Пользователь №: 6047


Цитата
Разработка на 1С:Предприятие 8.3 (8.3.9.2033),
Сборщик:
Прикладное решение предназначено для хранения компонентов, из которых выполняется сборка мобильных приложений для работы на платформе 1С:Предприятие версии 8.3. Также хранятся собранные мобильные приложения. (2.0.5.24)

Мобильная платформа: 8.3.10.51

В самом мобильном приложении, когда нажимаешь кнопку назад - появляется вопрос: "Выйти из прикладной программы?". Когда нижимаешь "Да" - иногда приложение зависает и потом выдает что приложение завершено аварийно. Но в основном быстро и нормально закрывается.

Отследить закономерность не удается когда приложение зависает при закрытии. Фоновых заданий нет.

Как избавится от зависаний? Кто что думает?

Может дело в мобильной платформе? Или в сборщике?
  Форум: Мобильная платформа 1С · Просмотр сообщения: #143145 · Ответов: 2 · Просмотров: 290
 

>  Как вести учет по подарочным сертификатам при фискальных продажах?
vbi
Отправлено: 04.07.18, 15:28


Оратор
Иконка группы

Группа: Местный
Сообщений: 292
Регистрация: 06.01.11
Из: Украина, Луцк
Пользователь №: 6047


Цитата
Или может когда покупатель покупает товар за сертификат, тогда пробивать чек на возврат по сертификату?
Так не подойдет, ведь сертификат купят в одном магазине а потом понесут в другой... а там нет чека продажи сертификата.


Kerberos @ Сегодня, 13:41 * , Kerberos @ Сегодня, 13:41 * ,
Цитата(Kerberos @ 04.07.18, 13:41) *
Возможно для этого в рекламных акциях пишут "під подарунком маєтся на увазі продаж за 0.01 грн"?

Тоесть сделать скидку на сам товар, как вариант. Только в налоговой могут потом быть вопросы почему продали ниже себестоимости?
  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #143136 · Ответов: 2 · Просмотров: 271
 

>  Как вести учет по подарочным сертификатам при фискальных продажах?
vbi
Отправлено: 30.06.18, 10:26


Оратор
Иконка группы

Группа: Местный
Сообщений: 292
Регистрация: 06.01.11
Из: Украина, Луцк
Пользователь №: 6047


К сожалению версии платформы и конфигурации пока не знаю, знаю что только УТП. Но решение нужно уже сейчас. Нужно продумать логику с учетом законодательства.

Есть сеть магазинов. Распределенка. Магазины работают только с фискальными регистраторами. Как правильно вести учет подарочных сертификатов при фискальных продажах?
Если продавать сертификат как товар и платить за него налоги, потом когда клиент купит товар за сертификат, его всеравно прийдется продать через ФР и снова заплатить налоги уже за товар. Ерунда получается.

Значит при продаже сертификата не нужно его пробивать как товар, тогда при закрытии смены в кассе будет на сумму сертификатов больше денег чем на ФР.

Как вообще правильно в этом случае вести учет сертификатов. Может есть законодательство как правильно продавать сертификаты? Кто с таким сталкивался?

Может в ФР есть специальный вид товара - сертификаты.
Или может когда покупатель покупает товар за сертификат, тогда пробивать чек на возврат по сертификату?
P.S. Клиент не хочет вести паралельную нефискальную кассу для сертификатов.

Вот есть тема о подарочных сертификатах, но тут общие вопросы и касающиеся работников самой фирмы которая выдает сертификаты:Подарочные сертификаты: какие налоги платить

Вот тема как реализовать, но тут без ФР:Подарочный сертификат



А можно по фискальному чеку делать скидку? А можно на всю сумму 100% скидка? Тогда сертификат продаем а товар - 100% скидка
  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #142991 · Ответов: 2 · Просмотров: 271
 

>  Помогите с сокетами
vbi
Отправлено: 15.06.18, 17:04


Оратор
Иконка группы

Группа: Местный
Сообщений: 292
Регистрация: 06.01.11
Из: Украина, Луцк
Пользователь №: 6047


Цитата
Попробуйте написать функцию в общем модуле повторного использования что то типа
Гениально! Все работает! Модуль ставим на повторное использование возвращаемых значений в значение "На время сеанса". И в коде перед вызовом "ПолучитьОбъектWinsocketClient()" Вызываем ОбновитьПовторноИспользуемыеЗначения();

Тогда срабатывает при каждом вызове. В итое имеем рабочее решение, когда с помощю сокетов сервер дергает нужного клиента. А клиент уже обращается к данным и делает то что ему положено.
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #142571 · Ответов: 2 · Просмотров: 330
 

>  Помогите с сокетами
vbi
Отправлено: 15.06.18, 9:38


Оратор
Иконка группы

Группа: Местный
Сообщений: 292
Регистрация: 06.01.11
Из: Украина, Луцк
Пользователь №: 6047


8.3.8.2322, УТП для Украины 1.2.8.7Есть обработочка. В обработке клиентское подключение через "MSWinsock.Winsock". Она есть в сети и она отлично работает, вот фрагмент рабочего кода:
Перем WinsocketClient;

Функция АвторизоватьсяНаСервере() Экспорт
     WinsocketClient = Новый COMObject("MSWinsock.Winsock");        
     WinsocketClient.RemoteHost = "localhost";
     WinsocketClient.RemotePort = 12345;
     WinsocketClient.Connect();        
КонецФункции


У меня в модуле обычного приложения прописана серверная часть сокета которая слушает порт 12345 и принимает подключения.
Это все работает, но стоит убрать в нашей обработке глобальную переменную
Перем WinsocketClient;
,как обработка перестает работать. Очевидно что она осуществляет коннект не сразу а после выполнения процедуры "АвторизоватьсяНаСервере()". А так как переменной нет, "WinsocketClient" убивается сразу по завершении процедуры не успев подключится к серверу.
Зачем я это все излагаю. Дело в том, что мне эту обработку-клиент нужно перенести в серверный модуль 1С. Там функция АвторизоватьсяНаСервере() будет дергатся HTTPСервисом. И там никакого клиента и текущего пользователя нет. А в серверном модуле не может быть глобальных переменных.
Вопрос: Как мне после завершении функции "АвторизоватьсяНаСервере" заставить жить переменную "WinsocketClient", чтобы она осуществила "Connect()"?
P.S Или HTTP-сервис выполняется тоже на клиенте? только-что мысль пришла пока писал...
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #142560 · Ответов: 2 · Просмотров: 330
 

>  Получить программно документы по отбору в форме списка документа
vbi
Отправлено: 04.06.18, 19:55


Оратор
Иконка группы

Группа: Местный
Сообщений: 292
Регистрация: 06.01.11
Из: Украина, Луцк
Пользователь №: 6047


Четкого ответа на тему нет, вот рабочий вариант. Может кому пригодится:
     Источник =  Новый ОписаниеИсточникаДанных(ДокументСписок);    
      Построитель = Новый ПостроительЗапроса;
      Построитель.ИсточникДанных = Источник;
      Построитель.Выполнить();
      ТЗ = Построитель.Результат.Выгрузить();
И делов то) Чтоб в следующий раз в поиске в Гугл найти ответ в этой теме.
  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #142200 · Ответов: 7 · Просмотров: 6057
 

>  Не регулярные конфликты блокирования
vbi
Отправлено: 04.06.18, 9:28


Оратор
Иконка группы

Группа: Местный
Сообщений: 292
Регистрация: 06.01.11
Из: Украина, Луцк
Пользователь №: 6047


Добрый день! Выручайте, проблема давно никак не могу справится. Итак 1С 8.3.8.2322, серверная, MS SQL SERVER 2014, Windows Server 2012 R2, "Управление торговлей для Украины", редакция 2.3. (2.3.17.1)В среднем работают одновременно 60 - 80 пользователей, База на SSD.
Дело в том, что 1 - 2 раза в неделю, в основном в понедельник и в среду - четверг, с 9 до 11 примерно начинается массовый жесткий конфликт блокировок у всех пользователей. Бывают недели что этого не происходит. Во время этого жесткого периода, люди не могут провести один документ по пол часа, причем все поголовно.

Перевел базу частично на управляемые блокировки, блокирую по минимуму с одборами по нужному товару, складам и контрагентам. В отчетах так вообще блокируется не исключающей блокировкой - говорят стало немного легче, но все же.Как понять, отыскать кто блокирует и чем блокирует, сил нет уже копаюсь на месте.
Подскажите как трасировать обращения к базе может?Или можно ли во время управляемой блокировки определить кто же блоканул твои данные?В логах SQL сервера не вижу ничего подозрительного:



Красной линией обозначен период жесткого зависания:



Перезапуск всех служб SQL и 1С сервера иногда дает результат а иногда не дает. Регламентные задания в то время не выполняются, шедулер в тов ремя не выполняется.
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #142182 · Ответов: 2 · Просмотров: 312
 

>  Кто работал с системой взаимодействия?
vbi
Отправлено: 31.05.18, 14:22


Оратор
Иконка группы

Группа: Местный
Сообщений: 292
Регистрация: 06.01.11
Из: Украина, Луцк
Пользователь №: 6047


Там в 8.3.11 вроде уже не зависит от сервиса 1С?

Насчет сокетов, пришел к тому, что одновременно держать соединение на одном порту с несколькими клиентами не получится, нужно либо пул портов выделять, либо подключатся и отключатся поочередно. Еще есть проблема если вдруг вылетает 1С - соединение остается висеть и занимать порт, пока его из диспетчера не убьешь.
Вообще если есть грамотное решение на чистых сокетах, я только за, только ткните носом меня smile.gif
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #142088 · Ответов: 3 · Просмотров: 389
 

>  Кто работал с системой взаимодействия?
vbi
Отправлено: 31.05.18, 13:38


Оратор
Иконка группы

Группа: Местный
Сообщений: 292
Регистрация: 06.01.11
Из: Украина, Луцк
Пользователь №: 6047


Добрый день! В платформе начиная с 8.3.10 и лучше реализовано в 8.3.11 есть система взаимодействий, которая позволяет серверу напрямую обращатся к определенному клиенту, так же как нескольким клиентам между собой в реальном времени. Через эту систему в 1С реализованы сообщения, звонки и видеозвонки между клиентами.
Может кто работал с системой и может показать пример элементарной реализации? И еще так и не понял, работает ли система с обычными формами или только управляемыми? Задача состоит в том чтобы в реальном времени серверу передать данные и запустить процедуру на клиенте определенного пользователя, причем в обычных формах и на толстом клиенте. А сокетами игратся не хочется.
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #142085 · Ответов: 3 · Просмотров: 389
 

>  Акт про результати інвентаризації наявних коштів
vbi
Отправлено: 06.04.18, 13:51


Оратор
Иконка группы

Группа: Местный
Сообщений: 292
Регистрация: 06.01.11
Из: Украина, Луцк
Пользователь №: 6047


Оновлюю УТП 1.2.45.2
Такі форми як:

  • Акт про результати інвентаризації наявних коштів
  • Акт про перевірку дотримання порядку ведення операцій з готівкою
Де вони знаходяться? Як вони реалізовані в УТП? Чи вони взагалі реалізовані?
  Форум: 1С Управление Торговым Предприятием 8 · Просмотр сообщения: #140520 · Ответов: 1 · Просмотров: 299
 

>  Затверджено нові форми касових документів
vbi
Отправлено: 06.04.18, 13:48


Оратор
Иконка группы

Группа: Местный
Сообщений: 292
Регистрация: 06.01.11
Из: Украина, Луцк
Пользователь №: 6047


icon_beer17.gif
  Форум: Бухгалтерский учет, налоги, последние изменения... · Просмотр сообщения: #140519 · Ответов: 2 · Просмотров: 560
 

>  Чтение штрихкода на ТСД под андроид
vbi
Отправлено: 29.01.18, 15:09


Оратор
Иконка группы

Группа: Местный
Сообщений: 292
Регистрация: 06.01.11
Из: Украина, Луцк
Пользователь №: 6047


Вопрос общий, пока все в теории, потому платформа еще не выбрана. Собственно вопрос:
Есть ТСД на Андроиде (тоже пока не выбран). Но на ТСД встроен специальный сканер штрихкода (не камера). Есть ли возможность прочитать данные с этого сканера в мобильном приложении? Нет ли подводных камней? На всех ли ТСД чтение со сканера работает или от этого не зависит?
Как насчет "Терминал сбора данных A402" отсюда?

Подскажите кто имел с этим дело.
Возможно кто-то уже реализовал такое, тогда может порекомендуйте модель ТСД?
  Форум: Мобильная платформа 1С · Просмотр сообщения: #137873 · Ответов: 1 · Просмотров: 396
 

>  Інтеграційна стиковка для 1С 7.7 та M.E.Doc
vbi
Отправлено: 16.11.17, 14:32


Оратор
Иконка группы

Группа: Местный
Сообщений: 292
Регистрация: 06.01.11
Из: Украина, Луцк
Пользователь №: 6047


Вот, случайно наткнулся. Может еще пригодится.
  Форум: Отчеты / Обработки · Просмотр сообщения: #134997 · Ответов: 33 · Просмотров: 15722
 

>  Отчисления в пенсионный фонд в товарах
vbi
Отправлено: 09.11.17, 18:48


Оратор
Иконка группы

Группа: Местный
Сообщений: 292
Регистрация: 06.01.11
Из: Украина, Луцк
Пользователь №: 6047


Есть Бухгалтерия 8 для Украины (1.2.42.1). Возможно ли в ней включить учет налога в пенсионный по товарах? Это актуально для карточек пополнения счета мобильных операторов.

Например:
Купили карту пополнения счета: по цене 127,50 грн. Это не просто сумма с ПДВ 20%, Это сумма с ПДВ и ПФ. Тут без ПДВ 100 грн + 20% ПДВ = 20 грн + 7,5% = 7,5 грн пенсионный (оба % берутся от суммы без ПДВ). Итого 100 + 20 + 7,5 = 127,5 грн.

Но поступление считает что 127,5 - это 106.25 грн. без ПДВ + 21,25 ПДВ.

При поступлении соответственно нужны проводки:
281 - 631 = 100 грн
6442 - 631 = 20 грн ПДВ
3771 - 631 = 7,5 грн ПФ.

Реестр входящего налогового документа должен соответственно двигать 6412 - 6442 = 20 ПДВ а не 21,25

Так же само реализация товаров и услуг и налоговая накладная, корректировка.

Возможен ли такой функционал в данной бухгалтерии? Если нет - что посоветуете? Дописывать? Или другую конфигурацию, где есть это реализовано?
  Форум: Бухгалтерия 8, редакция 1 для Украины · Просмотр сообщения: #134703 · Ответов: 3 · Просмотров: 503
 

>  И снова перевод на управляемые блокировки
vbi
Отправлено: 06.11.17, 21:11


Оратор
Иконка группы

Группа: Местный
Сообщений: 292
Регистрация: 06.01.11
Из: Украина, Луцк
Пользователь №: 6047


Разобрался. Отсюда:
Цитата
Управляемый режим позволяет повысить параллельность работы пользователей в клиент-серверном варианте работы за счет использования более низкого уровня изоляции транзакций базы данных (Read Committed). При записи данных в транзакции объекты встроенного языка автоматически блокируют необходимые данные. Разработчику требуется управлять блокировками данных в тех случаях, когда бизнес-логика требует согласованного и целостного чтения данных в транзакции.


То есть, насколько я понял, если не блокировать в коде при управляемом режиме, то конфигурация всеравно блокирует данные но более на низком уровне. Но если блокировать - тогда работает твой код. Следовательно в примере выше я не блокировал регситр сведений "СписанныеТовары". Когда я прописал в коде:
    Блокировка = Новый БлокировкаДанных();

        ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.СписанныеТовары");
        ЭлементБлокировки.Режим = РежимБлокировкиДанных.Разделяемый;
        
        ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.ПартииТоваровНаСкладах");
        ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;    
        ЭлементБлокировки.УстановитьЗначение("Склад", Склад);
        
        Блокировка.Заблокировать();

- блокировки исчезли. Мы в СписанныеТовары ничего не пишем - только читаем из него. Если мы его явно в коде не упоминали - он блокировался полностью и исключительно.

Причем блокировка работает почемуто только в ОбработкеПроведения документа. В подписках не работает...
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #134501 · Ответов: 17 · Просмотров: 922
 

>  И снова перевод на управляемые блокировки
vbi
Отправлено: 06.11.17, 20:03


Оратор
Иконка группы

Группа: Местный
Сообщений: 292
Регистрация: 06.01.11
Из: Украина, Луцк
Пользователь №: 6047


Цитата
В обработке группового проведения, в настройках снять галочку "Выполнять в транзакции".


Я проведение делаю там и там в Запроснику. Выполняю запрос - нахожу все реализации по складу, В обработке результата запроса - перепровожу.


Вообщем может делаю что не так:
Есть УТ. Включаю в настройках конфигурации режим блокировок "Управляемый". Дальше что делать, чтобы реализации одновременно проводились по партиям, по разным складам. Как блокировать партии только по конкретному складу?
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #134500 · Ответов: 17 · Просмотров: 922
 

>  И снова перевод на управляемые блокировки
vbi
Отправлено: 05.11.17, 21:06


Оратор
Иконка группы

Группа: Местный
Сообщений: 292
Регистрация: 06.01.11
Из: Украина, Луцк
Пользователь №: 6047


Цитата
Вы хотите во время данной транзакции параллельно запустить еще одно групповое проведение по данному регистру?

Да, но с отбором по разным складам.

Цитата
Попробуйте где-то перед этим запросом установить управляемую блокировку на регистр Партий по измерению Склад.


Попробовал, но результат - тот же:

    ...
    РежимБлокировки = РежимБлокировкиДанных.Исключительный;
    
    Блокировка = Новый БлокировкаДанных();
        ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.ПартииТоваровНаСкладах");
        ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
        
        ЭлементБлокировки.УстановитьЗначение("Склад", Регистратор.Склад);
  
    Блокировка.Заблокировать();
    
    Возврат Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам);

КонецФункции//ПолучитьДеревоПартийНаСкладахУпр


На возврате - ошибка.
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #134436 · Ответов: 17 · Просмотров: 922
 

>  И снова перевод на управляемые блокировки
vbi
Отправлено: 01.11.17, 18:19


Оратор
Иконка группы

Группа: Местный
Сообщений: 292
Регистрация: 06.01.11
Из: Украина, Луцк
Пользователь №: 6047


Другие документы не пробовал.
Ошибка возникает в строчке: "Запрос.Выполнить()" в процедуре:

Код
   Функция ПолучитьДеревоПартийНаСкладахУпр (МоментКон, СтруктураПараметров)
  
          
       Запрос = Новый Запрос;
      
       ОсновнойДокумент = Неопределено;
       СтруктураПараметров.Свойство("ОсновнойДокумент",ОсновнойДокумент);
      
       Регистратор = СтруктураПараметров.Регистратор;
       СпособОценкиМПЗ = СтруктураПараметров.СпособОценкиМПЗУпр;
       СтратегияСтатусПартии = СтруктураПараметров.СтратегияСтатусПартииУпр;
       ВестиПартионныйУчетПоСкладам = СтруктураПараметров.ВестиПартионныйУчетПоСкладамУпр;
  
       // Для повышения быстродействия остатки партий получаются различными способами
       Если СтруктураПараметров.Свойство("ЗакрытиеЗаказовПокупателей") Тогда
           ЗаполнитьЗапросПартийНаСкладахДляЗакрытияЗаказовПокупателей(Запрос);
          
       ИначеЕсли ОсновнойДокумент <> Неопределено И НЕ СтруктураПараметров.СписыватьПартииРасходнымОрдером
           И ТипЗнч(ОсновнойДокумент) = Тип("ДокументСсылка.РеализацияТоваровУслуг")тогда
           // Списание расходным ордером товара реализованного и принятого на ответственное хранение (отложенная отгрузка)
           ЗаполнитьЗапросПартийНаСкладахДляОтложеннойОтгрузкиУпр(Запрос, ВестиПартионныйУчетПоСкладам);
      
       ИначеЕсли ОсновнойДокумент <> Неопределено тогда
           // Списание партий по ордерной схеме:
           // - Списание партий по расходному ордеру
           // - Перемещение партий по приходному ордеру
           // - Перемещение партий поступлением товаров и услуг в НТТ
           // Движения реализации выполняет расходный ордер, движения перемещения выполняет приходный ордер
           ЗаполнитьЗапросПартийНаСкладахДляСписанияПоОрдернойСхемеУпр(Запрос, ВестиПартионныйУчетПоСкладам, СтратегияСтатусПартии, СпособОценкиМПЗ);
          
       Иначе
           // Общий случай списания
           ЗаполнитьЗапросПартийНаСкладахУпр(Запрос, ВестиПартионныйУчетПоСкладам, СтратегияСтатусПартии, СпособОценкиМПЗ);
          
              
           Если НЕ СтруктураПараметров.ИспользоватьУказаниеСерийНоменклатурыПриРезервировании тогда
               Запрос.Текст = СтрЗаменить(Запрос.Текст,"ИЛИ ПартииТоваровНаСкладах.СерияНоменклатуры = &ПустаяСерияНоменклатуры",
               "ИЛИ ПартииТоваровНаСкладах.СерияНоменклатуры = &ПустаяСерияНоменклатуры
               |ИЛИ СписанныеТовары.КодОперацииПартииТоваров = &КодРезервирование");
               Запрос.УстановитьПараметр("КодРезервирование" , СтруктураПараметров.КодыОпераций.РезервированиеПодЗаказ)
           КонецЕсли;
          
       КонецЕсли;
      
       Запрос.УстановитьПараметр("ПустаяСерияНоменклатуры", Справочники.СерииНоменклатуры.ПустаяСсылка());
       Запрос.УстановитьПараметр("ПустойЗаказ", Документы.ЗаказПокупателя.ПустаяСсылка());
       Запрос.УстановитьПараметр("ПустойСтатус", Перечисления.СтатусыПартийТоваров.ПустаяСсылка());
       Запрос.УстановитьПараметр("СтатусПартииПоОрдеру", Перечисления.СтатусыПартийТоваров.ПоОрдеру);    
       Запрос.УстановитьПараметр("ПустоеКачество", Справочники.Качество.ПустаяСсылка());
       Запрос.УстановитьПараметр("КачествоНовый", Справочники.Качество.Новый);
       Запрос.УстановитьПараметр("ПустойСклад", Справочники.Склады.ПустаяСсылка());
      
       Запрос.УстановитьПараметр("Ссылка", Регистратор);
      
       Если  ОсновнойДокумент <> Неопределено Тогда
           Запрос.УстановитьПараметр("ОсновнойДокумент", ОсновнойДокумент);
       Иначе
           Запрос.УстановитьПараметр("ОсновнойДокумент", Регистратор);
       КонецЕсли;
      
       Запрос.УстановитьПараметр("Дат", МоментКон);
      
       Запрос.УстановитьПараметр("НаКомиссию", Перечисления.СтатусыПартийТоваров.НаКомиссию);
      
  
       Если ТипЗнч(Регистратор) = Тип("ДокументСсылка.ОтчетОРозничныхПродажах") или ТипЗнч(Регистратор) = Тип("ДокументСсылка.РеализацияТоваровУслуг")  ИЛИ ТипЗнч(Регистратор) = Тип("ДокументСсылка.ПеремещениеТоваров") Тогда
           //или ТипЗнч(Регистратор) = Тип("ДокументСсылка.ВозвратТоваровПоставщику") Тогда
          
           Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
           |    СписанныеТовары.НомерСтрокиДокумента КАК НомерСтрокиДокумента,
           |    ПартииТоваровНаСкладах.Номенклатура,
           |    ПартииТоваровНаСкладах.ДокументОприходования КАК ДокументОприходования,
           |    ПартииТоваровНаСкладах.ДокументОприходования.Дата КАК ДокументОприходованияДата,
           |    ПартииТоваровНаСкладах.Склад,
           |    ПартииТоваровНаСкладах.ХарактеристикаНоменклатуры,
           |    ПартииТоваровНаСкладах.СерияНоменклатуры,
           |    ПартииТоваровНаСкладах.Качество,
           |    ПартииТоваровНаСкладах.Заказ,
           |    ПартииТоваровНаСкладах.КоличествоОстаток КАК Количество,
           |    ПартииТоваровНаСкладах.СтоимостьОстаток КАК Стоимость,
           |    ПартииТоваровНаСкладах.СтатусПартии,
           |    ВЫБОР
           |        КОГДА СписанныеТовары.СерияНоменклатуры = ПартииТоваровНаСкладах.СерияНоменклатуры
           |            ТОГДА 0
           |        ИНАЧЕ 1
           |    КОНЕЦ КАК ЧислоСерияНоменклатуры,
           |    ВЫБОР
           |        КОГДА СписанныеТовары.ДокументПартии = НЕОПРЕДЕЛЕНО
           |            ТОГДА 0
           |        ИНАЧЕ ВЫБОР
           |                КОГДА СписанныеТовары.ДокументПартии = ПартииТоваровНаСкладах.ДокументОприходования
           |                    ТОГДА 0
           |                ИНАЧЕ 1
           |            КОНЕЦ
           |    КОНЕЦ КАК ЧислоДокументОприходования,
           |    ВЫБОР
           |        КОГДА СписанныеТовары.ЗаказПартии = НЕОПРЕДЕЛЕНО
           |            ТОГДА 0
           |        ИНАЧЕ ВЫБОР
           |                КОГДА ПартииТоваровНаСкладах.Заказ = &ПустойЗаказ
           |                    ТОГДА 1
           |                ИНАЧЕ 0
           |            КОНЕЦ
           |    КОНЕЦ КАК ЧислоЗаказ,
           |    ВЫБОР
           |        КОГДА ПартииТоваровНаСкладах.СтатусПартии = &НаКомиссию
           |            ТОГДА 1
           |        ИНАЧЕ 0
           |    КОНЕЦ КАК ЧислоСтатусПартии
           |ИЗ
           |    РегистрСведений.СписанныеТовары КАК СписанныеТовары
           |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах.Остатки(&Дат, Склад = &Склад) КАК ПартииТоваровНаСкладах
           |            ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СписанныеТовары КАК СписанныеТовары1
           |            ПО СписанныеТовары1.Номенклатура = ПартииТоваровНаСкладах.Номенклатура
           |        ПО СписанныеТовары.Номенклатура = ПартииТоваровНаСкладах.Номенклатура
           |            И СписанныеТовары.ХарактеристикаНоменклатуры = ПартииТоваровНаСкладах.ХарактеристикаНоменклатуры
           |            И (ВЫБОР
           |                КОГДА ПартииТоваровНаСкладах.Качество = &ПустоеКачество
           |                    ТОГДА ИСТИНА
           |                ИНАЧЕ ВЫБОР
           |                        КОГДА СписанныеТовары.Качество = &ПустоеКачество
           |                            ТОГДА ПартииТоваровНаСкладах.Качество = &КачествоНовый
           |                        ИНАЧЕ ПартииТоваровНаСкладах.Качество = СписанныеТовары.Качество
           |                    КОНЕЦ
           |            КОНЕЦ)
           |            И (ПартииТоваровНаСкладах.Склад = СписанныеТовары.Склад
           |                ИЛИ ПартииТоваровНаСкладах.Склад = &ПустойСклад)
           |            И (ВЫБОР
           |                КОГДА СписанныеТовары.ДопустимыйСтатус1 <> &ПустойСтатус
           |                        ИЛИ СписанныеТовары.ДопустимыйСтатус2 <> &ПустойСтатус
           |                        ИЛИ СписанныеТовары.ДопустимыйСтатус3 <> &ПустойСтатус
           |                        ИЛИ СписанныеТовары.ДопустимыйСтатус4 <> &ПустойСтатус
           |                    ТОГДА ПартииТоваровНаСкладах.СтатусПартии = &ПустойСтатус
           |                            ИЛИ ПартииТоваровНаСкладах.СтатусПартии = &СтатусПартииПоОрдеру
           |                            ИЛИ ПартииТоваровНаСкладах.СтатусПартии = СписанныеТовары.ДопустимыйСтатус1
           |                            ИЛИ ПартииТоваровНаСкладах.СтатусПартии = СписанныеТовары.ДопустимыйСтатус2
           |                            ИЛИ ПартииТоваровНаСкладах.СтатусПартии = СписанныеТовары.ДопустимыйСтатус3
           |                            ИЛИ ПартииТоваровНаСкладах.СтатусПартии = СписанныеТовары.ДопустимыйСтатус4
           |                ИНАЧЕ ИСТИНА
           |            КОНЕЦ)
           |            И (ВЫБОР
           |                КОГДА СписанныеТовары.СписыватьТолькоПоЗаказу = ИСТИНА
           |                    ТОГДА ВЫБОР
           |                            КОГДА ПартииТоваровНаСкладах.Заказ <> СписанныеТовары.ЗаказПартии
           |                                ТОГДА ВЫБОР
           |                                        КОГДА НЕ СписанныеТовары.ЗаказПартии = НЕОПРЕДЕЛЕНО
           |                                            ТОГДА ЛОЖЬ
           |                                        ИНАЧЕ ПартииТоваровНаСкладах.Заказ = &ПустойЗаказ
           |                                    КОНЕЦ
           |                            ИНАЧЕ ИСТИНА
           |                        КОНЕЦ
           |                ИНАЧЕ ВЫБОР
           |                        КОГДА ПартииТоваровНаСкладах.Заказ <> СписанныеТовары.ЗаказПартии
           |                            ТОГДА ПартииТоваровНаСкладах.Заказ = &ПустойЗаказ
           |                        ИНАЧЕ ИСТИНА
           |                    КОНЕЦ
           |            КОНЕЦ)
           |            И (СписанныеТовары.СерияНоменклатуры = ПартииТоваровНаСкладах.СерияНоменклатуры
           |                ИЛИ ПартииТоваровНаСкладах.СерияНоменклатуры = &ПустаяСерияНоменклатуры
           |                ИЛИ СписанныеТовары.КодОперацииПартииТоваров = &КодРезервирование)
           |ГДЕ
           |    СписанныеТовары.Регистратор = &ОсновнойДокумент
           |    И СписанныеТовары.Склад = &Склад
           |    И СписанныеТовары1.Регистратор = &Ссылка
           |
           |УПОРЯДОЧИТЬ ПО
           |    ЧислоСерияНоменклатуры,
           |    ЧислоДокументОприходования,
           |    ЧислоЗаказ,
           |    ЧислоСтатусПартии,
           |    ДокументОприходованияДата,
           |    ДокументОприходования
           |ИТОГИ ПО
           |    НомерСтрокиДокумента";
  
          
          
           Если ТипЗнч(Регистратор) = Тип("ДокументСсылка.ПеремещениеТоваров") Тогда
               Запрос.УстановитьПараметр("Склад", Регистратор.СкладОтправитель);
           Иначе    
               Запрос.УстановитьПараметр("Склад", Регистратор.Склад);
           КонецЕсли;
       КонецЕсли;
  
       Возврат Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам);
  
   КонецФункции//ПолучитьДеревоПартийНаСкладахУпр


причем всегда на том же месте ошибка. Запрос выполняется по партиям. На партии стоит отбор по складу. На списанные товары блокировку вообще не ставил. Да и проблема в том что если вообще блокировку не ставить то ошибка та же. Такое впечатление что как то они автоматически ставятся.
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #134285 · Ответов: 17 · Просмотров: 922
 

>  И снова перевод на управляемые блокировки
vbi
Отправлено: 01.11.17, 17:48


Оратор
Иконка группы

Группа: Местный
Сообщений: 292
Регистрация: 06.01.11
Из: Украина, Луцк
Пользователь №: 6047




MS SQL 2014
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #134283 · Ответов: 17 · Просмотров: 922
 

>  И снова перевод на управляемые блокировки
vbi
Отправлено: 01.11.17, 17:21


Оратор
Иконка группы

Группа: Местный
Сообщений: 292
Регистрация: 06.01.11
Из: Украина, Луцк
Пользователь №: 6047


Цитата
Перечитываю много раз что вы написали, но непонятно нифига что у вас происходит. Кроме того вы, видимо, путаете между собой эти две проблемы (о которых я выше писал), считая, что это одно и то же. Вы сейчас запускаете проведение расходных накладных под двумя пользователями по разным складам и у вас в какой-то момент возникают именно взаимоблокировки?


Да, путаю. Но уже не путаю, уже вроде разобрался в их различии.
Именно взаимоблокировки, так как пишет ошибку "... стала жертвой взаимоблокировки". - Значит менеджер взаимоблокировок одну транзакцию принес в жертву.


Но вот незадача: отключил ту процедуру что описал выше, которая осуществляет блокировки. - результат тот же. Блокировок не ставлю - откуда взаимоблокировки?Конфигурация в режиме чисто управляемых блокировок.
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #134281 · Ответов: 17 · Просмотров: 922
 

>  И снова перевод на управляемые блокировки
vbi
Отправлено: 01.11.17, 16:02


Оратор
Иконка группы

Группа: Местный
Сообщений: 292
Регистрация: 06.01.11
Из: Украина, Луцк
Пользователь №: 6047


По таймауту в центральной базе. А в этом примере - жертва взаимоблокировок.
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #134277 · Ответов: 17 · Просмотров: 922
 

>  И снова перевод на управляемые блокировки
vbi
Отправлено: 01.11.17, 14:58


Оратор
Иконка группы

Группа: Местный
Сообщений: 292
Регистрация: 06.01.11
Из: Украина, Луцк
Пользователь №: 6047


Цитата
С блокировками существует 2 проблемы:
1) кто-то отваливается по таймауту, потому что не дожидается освобождения ресурсов
2) кто-то отваливается из-за взаимоблокировок

У вас что именно?

По таймауту
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #134273 · Ответов: 17 · Просмотров: 922
 

>  И снова перевод на управляемые блокировки
vbi
Отправлено: 01.11.17, 12:19


Оратор
Иконка группы

Группа: Местный
Сообщений: 292
Регистрация: 06.01.11
Из: Украина, Луцк
Пользователь №: 6047


Конфигурация УТ для Украины 2.3 (доработанная много чем), платформа 8.3.8.1784.
И вот снова конфликт блокировки транзакций, где около 200 пользователей одновременно блокируют друг друга. Отложенное проведение по партиям уже не помагает, прижало до реализации управляемых блокировок.
На основе статьи придумал реализовать блокировки по складу следующим образом:

1. Переводим саму конфигурацию на чисто управляемые блокировки.
2. Создаем подписку на событие "ОбработкаПроверкиЗаполнения", источник - ДокументОбъект.
3. Процедура подписки:

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


Подписка на "ОбработкаПроверкиЗаполнения" выполняется раньше чем "ПередЗаписью" в модуле объекта. Блокировка работает так:
По умолчанию блокируется все без отбора. Но если регистр имеет измерение "Склад", а источник "Склад", "СкладОрдер", "СкладОтправитель" - то устанавливается отбор по складу. Теоретически такая блокировка должна увеличить параллельность. Кто что думает?

Сделал я вот это все. На тестовой базе зашел под двумя пользователями и одновременно запустил перепроведение всех реализаций и там и там, но первый пользователь - все реализации с одного склада "Склад1" второй - "Склад2". Теоретически взаимоблокировок не должно быть. Но постоянно вижу Конфликт блокировки транзакций по регистру партий. В месте где вызывается запрос по партиям и списанным товарам. В запросе по партиям есть отбор по складу, а вот списанные товары не блокируются....
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #134257 · Ответов: 17 · Просмотров: 922
 

>  Импортный товар или нет (для загрузки в Медок)?
vbi
Отправлено: 20.03.17, 17:49


Оратор
Иконка группы

Группа: Местный
Сообщений: 292
Регистрация: 06.01.11
Из: Украина, Луцк
Пользователь №: 6047


УТП для Украины версия 1.2.41.1 от 14.03.2107. Вроде для моей задачи актуальная.
Вот пытаюсь разобратся с выгрузкой налоговой в XML для последующей загрузки в Медок. Все хорошо работает и загружается, НО! Для налоговой важно какой товар импортный а какой нет. У меня в выгрузке идет весь товар как НЕ импортный, но на самом деле часть импортная а часть нет.
Так вот, нигде не могу найти признак "импортности" товара. Вряд ли это должна быть птичка в номенклатуре, так как один и тот же товар может быть импортирован а может и нет. Наверное все углубляется в партии, но где в партиях этот признак? Проверял птичку "Не резидент" у контрагента-поставщика, так эта птичка не фигурирует в регламентированной отчетности 2017 года.

Может кто подскажет как один товар сделать импортным для ГНАУ а другой нет? Или подскажет куда копать...
  Форум: 1С Управление Торговым Предприятием 8 · Просмотр сообщения: #124396 · Ответов: 1 · Просмотров: 846
 

12 страниц V   1 2 3 > » 

Новые сообщения  Открытая тема (есть новые ответы)
Опрос  Опрос (есть новые голоса)
Нет новых сообщений  Открытая тема (нет новых ответов)
Нет новых голосов  Опрос (нет новых голосов)
Популярная тема  Горячая тема (есть новые ответы)
Закрыта  Закрытая тема
Нет новых  Горячая тема (нет новых ответов) Перемещена  Тема перемещена
 

RSS Текстовая версия Сейчас: 24.10.18, 1:10
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!

Курсы валют: доллар США к гривне Курсы валют: евро к гривне Курсы валют: российский рубль к гривне