Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
17 Дек 2017, 01:26
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Какую блокировку поставить?  (Прочитано 2618 раз)

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

Оффлайн DirecTwiX

  • ***
  • Сообщений: 185
  • РЕПУТАЦИЯ: 19
  • КПД: 10%
  • Регистрация: 2012-03-27
  • Сайт: 
  • Профессия: Программист 1С
Написал запрос... Затем проводку.. Осталось написать блокировку
У регистра бухгалтерии есть измерения организация. Я "тревожу" две организации.. Значит записи по ним нужно блокировать. Так же я тревожу три счёта. Это уже два источника данных. Т.е. нужно создавать два элемента блокровки с этими источниками? + 3й элемент на номенклатуру. Так?
Спасибо

Цитировать
   Движения.Управленческий.Записывать = Истина;

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

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


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


Оффлайн DirecTwiX

  • ***
  • Сообщений: 185
  • РЕПУТАЦИЯ: 19
  • КПД: 10%
  • Регистрация: 2012-03-27
  • Сайт: 
  • Профессия: Программист 1С
Цитировать
Выборка = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
   Пока Выборка.Следующий() Цикл
      Если Выборка.НадоКоличество > Выборка.КоличествоОстаток Тогда
         Сообщить("Не хватает " + (Выборка.НадоКоличество-Выборка.КоличествоОстаток) + " шт. <" + Выборка.Номенклатура + ">");
         Отказ = Истина;
      КонецЕсли;       
      Если Отказ Тогда
         Продолжить;   
      КонецЕсли;
      
      Движение = Движения.Управленческий.Добавить();
      Движение.СчетКт = ПланыСчетов.Управленческий.ПрибылиУбытки;
      Движение.СчетДт = ПланыСчетов.Управленческий.Покупатели;
      Движение.Период = Дата;
      Движение.Организация = ОрганизацияПоставщик;
      Движение.Сумма = Выборка.Сумма;
      Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Организация] = ОрганизацияПолучатель;
      
      Движение = Движения.Управленческий.Добавить();
      Движение.СчетДт = ПланыСчетов.Управленческий.Товары;
      Движение.СчетКт = ПланыСчетов.Управленческий.Поставщики;
      Движение.Период = Дата;
      Движение.Организация = ОрганизацияПолучатель;
      Движение.КоличествоДт = Выборка.НадоКоличество;
      Движение.Сумма = Выборка.Сумма;
      Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Номенклатура] = Выборка.Номенклатура;
      Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Склад] = СкладПолучателя;
      Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Партия] = Ссылка;


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

Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2857
  • РЕПУТАЦИЯ: 546
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
Поставь галочку в свойствах конфигурации "Режим блокировок" - АВТОМАТИЧЕСКИЙ
В автоматическом режиме управления блокировками данных используются уровни изоляции транзакций repeatable read и serializable, обеспечиваемые системой управления базами данных. Эти уровни изоляции транзакций обеспечивают согласованное и целостное чтение данных, и от разработчика не требуется каких-либо дополнительных действий по управлению блокировками.
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
Поставь галочку в свойствах конфигурации "Режим блокировок" - АВТОМАТИЧЕСКИЙ
В автоматическом режиме управления блокировками данных используются уровни изоляции транзакций repeatable read и serializable, обеспечиваемые системой управления базами данных. Эти уровни изоляции транзакций обеспечивают согласованное и целостное чтение данных, и от разработчика не требуется каких-либо дополнительных действий по управлению блокировками.

При разработке управляемых приложений (а вернее даже клиент-серверных) применять нужно управляемую блокировку.
При проверке задач по Оперативному учету (насчет Бухгалтерского - пока ничего не скажу) на работу с блокировками очень внимательно смотрят...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2857
  • РЕПУТАЦИЯ: 546
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
Ну все же от задачи зависит... (Согласен что в клиент-серверной при наличии Опер учета Автоматическая блокировка ваще никак)
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!


Теги:
 

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

Автор Олька БякинаРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 5
Просмотров: 2762
Последний ответ 27 Май 2016, 15:19
от Олька Бякина
Какую консоль запросов используете вы в управляемом приложении или что за консоль в видео?

Автор acces969Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 394
Последний ответ 17 Апр 2017, 09:40
от LexaK
Как научиться программировать и в каких конйигурациях? какую литературу? и можно ли в интернете заказы брать и где? зарание спасибо за ответ

Автор Almaz0856Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 1408
Последний ответ 18 Дек 2013, 15:31
от MuI_I_Ika
Какую стоимость нужно указывать в 3-НДФЛ при продаже помещения, которое было переведено в нежилое?

Автор topicsРаздел Статьи

Ответов: 0
Просмотров: 1109
Последний ответ 05 Май 2014, 12:22
от topics
"Розница 1" Как поставить на резерв

Автор apishРаздел Пользователям "1С - Предприятие 8"

Ответов: 2
Просмотров: 4460
Последний ответ 29 Ноя 2011, 14:55
от apish

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
142 Сообщений
ilyay ilyay
63 Сообщений
alex0402
50 Сообщений
AIFrame
50 Сообщений
andron81_81
44 Сообщений
oleg-x
42 Сообщений
BuhRust
32 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
24 Сообщений

* Кто онлайн

  • Точка Гостей: 163
  • Точка Скрытых: 0
  • Точка Пользователей: 0

Нет пользователей онлайн.

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal